说, - 有一个父组件A和一个子组件B.
在组件B上设置OnPush。
有一刻,B的属性不是输入绑定属性会改变,我想检测更改并相应地更新视图。
根据我的理解,应该有2个选项。
在B上实现 ngDoCheck 挂钩并调用markForCheck方法,因为我们都知道属性的更改触发了来自A组件的更改检测流程,并且在此过程中,B中的ngDoCheck将被调用并且markForCheck将标记到A的路径(在这种情况下是根),以便尽管采用OnPush策略也可以触发其变化检测。
在属性更改时刻之后立即调用 detectChanges ,这解释了自己。
在我看来,两者都应该有效,但我想知道哪种方法更合适。
答案 0 :(得分:0)
出于某种原因,选项2无效。
选项1( markForCheck )是解决此问题的方法。我正在对此进行一些研究,并随时向您发布调查结果!
感谢。