解決済み: 問題は rxJS スレッドにありました。1 つのスレッドが頻繁に空の配列を渡したため、テーブルをリセットしました。
テーブルは 4 秒ごとに更新されます。まばたきを止めるには、trackBy 関数を適用します。関数がトリガーされていることがわかりますが、テーブル全体が再レンダリングされます。私は何か間違ったことをしていると思います。私がすること... 追跡機能を設定します。
<mat-table ... [trackBy]="trackById">
追跡機能を実装します。
trackById(index, item) {
console.log(item._id);
return item._id;
}
テーブルは、テーブルのデータ ソースの更新によって更新されます。
updateOperations() {
this.dataSource = new Source(this.forexService);
}
コンポーネント全体はこちらhttps://gist.github.com/vlikin/6f130c53b1fd38116afe20d15a2afc40です。
このコンポーネントは、操作のリストを表示します。2 つのオブザーバブルからデータを取得します。テーブルのデータ ソースは一度作成されます。データの変更は、行動主体のデータによって開始されます。データのリトリング処理は関数内にありますupdate
。mat-table コンポーネントは、出力を最適化する必要があるディレクティブ trackBy を使用します。しかし、まだ点滅しています。
trackId がある場合とない場合の 2 つのプランクが あります。
そのような効果はまったくありません。私のアプリケーションでは点滅しています。
誰かが私を助けてくれることを願っています。よろしく。