我'm facing an issue regarding angular 2 change detection. I'm使用了一个使用'onPush'策略的组件,我将') so I' onPush ') so I' ve添加了changeDetector.detectChanges()到我的代码中,它导致 Maximum call stack size exceeded
. 我愣了一下,结束了
setTimeout(() => {
this.changeDetector.markForCheck();
}, 0);
代码运行得很好 . 我的问题是为什么angular.detectChanges()导致此错误并使用setTimeout不?如果我理解当前setTimeout也应该运行changeDetection,所以它几乎一样,不是吗?
这样使用setTimout是一种好习惯吗?