我有一个父组件和子组件。 孩子有一个OnPush策略来检测变化。 我传递了throght binding()一个对象数组。
但是当一切都被渲染并且我从数组中更改一个对象的字段时,我列出字段值的模板不会更新。有人知道为什么吗?
答案 0 :(得分:0)
OnPush
只能用于不变性。
如果您使用push
方法改变数组,那么您的组件将无法更新,因为您的数组引用仍然相同。
在父组件中,如果我们以示例的方式添加值,您应该这样做:
this.myArray = [...this.myArray, {someObjectOrWhatever: ''}] // this creates a new reference
如果要删除,可以使用返回新数组的过滤器。
但只要您保留相同的引用并在您的子组件上激活OnPush
,您就不会看到任何更新。