我有一个垫表,其中部分数据每秒最多更新 2 次。我的表中有大约 3 个这样的单元格,而剩下的 6 个可能永远不会更新。有没有办法像当前一样通过更新数据源来单独更新每个单元格,每次更新整个行都会导致性能显着下降,一旦我达到 6-8 行之间的某个位置(表的预期行数约为 10)。我尝试使用 observables 作为数据并使用:
{{ element[columnId] | async }}
在细胞中。这样做的原因是它只更新数字而不是整行(使用 chrome 渲染调试测试)。但这破坏了 MatSort。然后我尝试覆盖 sortDataAccessor 但无法获取该值,因为它需要订阅。
尽管我不喜欢它,但我能想到的唯一解决方案是将 BehaviorSubjects 用于我的所有数据,以便在 sortDataAccessor 中使用: return value.value同步获取值,然后在模板中使用element[columnId].asObservable() | async。
但这对我来说感觉很hacky,我想必须有更好的解决方案来实现这一点。