0
私は親コンポーネントと子を持っています。 子は、変更を検出するためのOnPush戦略を持っています。 私はthroght binding()オブジェクトの配列を渡します。Angry 2 OnPush戦略でArryの変更が表示されない
しかし、すべてがレンダリングされ、配列のオブジェクトの1つのフィールドを変更すると、フィールドの値をリストするテンプレートは更新されません。なぜ誰が知っていますか?
私は親コンポーネントと子を持っています。 子は、変更を検出するためのOnPush戦略を持っています。 私はthroght binding()オブジェクトの配列を渡します。Angry 2 OnPush戦略でArryの変更が表示されない
しかし、すべてがレンダリングされ、配列のオブジェクトの1つのフィールドを変更すると、フィールドの値をリストするテンプレートは更新されません。なぜ誰が知っていますか?
OnPush
は、不変の場合にのみ使用できます。
たとえば、push
メソッドを使用して配列を変更すると、配列参照が同じであるため、コンポーネントは更新されません。我々は値を追加する例を取る場合は、あなたがすべき親コンポーネントで
:
this.myArray = [...this.myArray, {someObjectOrWhatever: ''}] // this creates a new reference
削除したい場合は、あまりにも新しい配列を返すフィルタを使用することができます。
ただし、同じ参照を保持し、子コンポーネントでOnPush
を有効にしている限り、更新は表示されません。