我面临关于角度2变化检测的问题。
我正在使用一个使用' onPush'策略并且我注意到它的子组件不会在更新时自行更新它们(它们本身也是' onPush')所以我添加了changeDetector.detectChanges( )到我的代码,它导致Maximum call stack size exceeded
。
我踌躇了一点,结束了
setTimeout(() => {
this.changeDetector.markForCheck();
}, 0);
代码运行得很好。 我的问题是为什么angular.detectChanges()导致此错误并使用setTimeout不要?如果我当前理解了setTimeout也应该运行changeDetection,那么它几乎一样,不是吗?
这样使用setTimout是一种好习惯吗?