已解决:问题出在 rxJS 线程中。一个线程过于频繁地传递空数组,因此它重置了表。
该表每 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。
该组件显示操作列表。它从两个可观察对象中检索数据。表的数据源创建一次。数据更改由行为主体数据发起。数据回溯过程位于函数中update
。mat-table 组件使用必须优化输出的指令 trackBy。但它仍然在闪烁。
有和没有 trackId 的两个 plunk: 有 - https://embed.plnkr.co/wK5Jh4tIgY9p9Gw4rfhx/ 没有 - https://embed.plnkr.co/Rc9z9aXlalQe8yWpGjUq/
根本没有这样的效果。在我的应用程序中它正在闪烁。
我希望,有人会帮助我。问候。