【发布时间】:2018-06-15 05:49:42
【问题描述】:
我的问题是,我正在迭代 Angular 模板中的日期数组。 Dates 的引用每次都会更改,因此视图正在重绘减慢应用程序的内容。我的想法是,用 Date.getTime() 做一个“trackby”,但这不能正常工作。 DOM 元素已重新创建。这使得网站非常缓慢。
代码示例如下:
<div *ngFor ="let month of (months$ | async); trackBy: trackByMonth">
...
</div>
trackByMonth(index, item) {
return item.getTime();
}
有人知道如何避免重绘 DIV 元素吗?
【问题讨论】:
-
(months$ | async) 意味着您每次都从可观察的大部分 http 获取数据,对吗?
-
我从一个ngrx-store选择器得到它
-
在 trackby ngFor 基于身份刷新项目的情况下,如果你有
getTime()这可能会导致问题,你为什么不尝试这样trackByMonth(index, item) { return index; }返回索引而不是时间 -
@Pranay Rana,是的,我删除了我的“愚蠢”评论
-
我尝试使用索引,但这也不起作用。此外,索引并没有真正识别对象,因为月份可能会发生变化(例如,从 5 月开始而不是 1 月开始)。如果我正确理解trackby,必须返回对象的唯一标识符?