angularfire2を使用してangular2アプリにメッセージの非同期リストがあります。
<message *ngFor="let message of messages | async" [message]="message"></message>
リストが更新されると、ngFor 内のすべての要素が再レンダリングされるように見えます。リスト内の新しいアイテムを再レンダリングすることは可能ですか?
angularfire2を使用してangular2アプリにメッセージの非同期リストがあります。
<message *ngFor="let message of messages | async" [message]="message"></message>
リストが更新されると、ngFor 内のすべての要素が再レンダリングされるように見えます。リスト内の新しいアイテムを再レンダリングすることは可能ですか?
データの取得時にオブジェクトの実際の参照を変更したため、再レンダリングが発生します。そのとき、ngFor
すべての DOM ノードが再描画されます。そのような場合は、trackBy
ここで使用して、*ngFor
より賢くすることができます。
trackBy
一意のID列に基づく必要があります。あなたの場合、それはmessage.id
<message *ngFor="let message of messages | async;trackBy:trackByFn" [message]="message"></message>
コード
trackByFn(message: any){
// return message != null ? message.id: null;
// OR
return message && message.id; //more better
}