Angular 2 OnPush策略没有看到Arry

时间:2017-03-17 12:03:29

标签: angular typescript

我有一个父组件和子组件。 孩子有一个OnPush策略来检测变化。 我传递了throght binding()一个对象数组。

但是当一切都被渲染并且我从数组中更改一个对象的字段时,我列出字段值的模板不会更新。有人知道为什么吗?

1 个答案:

答案 0 :(得分:0)

OnPush只能用于不变性。

如果您使用push方法改变数组,那么您的组件将无法更新,因为您的数组引用仍然相同。

在父组件中,如果我们以示例的方式添加值,您应该这样做:

this.myArray = [...this.myArray, {someObjectOrWhatever: ''}] // this creates a new reference

如果要删除,可以使用返回新数组的过滤器。

但只要您保留相同的引用并在您的子组件上激活OnPush,您就不会看到任何更新。