私はこれに似たコードを持っています:
<ng-container *ngFor="let hero of heroes">
<my-comp [CurrentHero]="hero"></mycomp>
</ng-container>
さて、私のアプリケーションでは、ヒーロー配列は参照を変更せず、自分の値を更新するだけです。
したがって、「ヒーロー」にも新しい参照はありません。
ただし、コンポーネント「my-comp」をOnPush戦略に含める必要があります。だから私は@InputCurrentHeroが毎回新しい参照を持つ必要がありますが、それは起こりませんでした。
テンプレートの中にヒーローをコピーして新しいリファレンスにする可能性はありますか?
何かのようなもの:
<my-comp [CurrentHero]="{...hero}" ></my-comp>
前もって感謝します。
不変性を使用する場合、これはアンチパターンになります。
ヒーローの値を変更するときは、常に新しいオブジェクトをheroes
変数に戻す必要があります。
heroes
個々のプロパティの値をどのように変更するかはわかりませんが、このようにすると
changingHeroes() {
let newHeroes = JSON.parse(JSON.stringify(this.heroes));
newHeroes[0].something = 123;
this.heroes = newHeroes;
}
JSON.parse(JSON.stringify(this.heroes))
これは、オブジェクトのディープコピーを実行するためのものであることに注意してください。のように拡散する{...this.heroes}
と、その配列内のすべての個々のオブジェクトへの古い参照が保持されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加