2017-03-17 4 views
0

私は親コンポーネントと子を持っています。 子は、変更を検出するためのOnPush戦略を持っています。 私はthroght binding()オブジェクトの配列を渡します。Angry 2 OnPush戦略でArryの変更が表示されない

しかし、すべてがレンダリングされ、配列のオブジェクトの1つのフィールドを変更すると、フィールドの値をリストするテンプレートは更新されません。なぜ誰が知っていますか?

答えて

0

OnPushは、不変の場合にのみ使用できます。

たとえば、pushメソッドを使用して配列を変更すると、配列参照が同じであるため、コンポーネントは更新されません。我々は値を追加する例を取る場合は、あなたがすべき親コンポーネントで

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

削除したい場合は、あまりにも新しい配列を返すフィルタを使用することができます。

ただし、同じ参照を保持し、子コンポーネントでOnPushを有効にしている限り、更新は表示されません。

関連する問題