在Angular 13中,NgForOf指令被优化以提高性能并减少内存泄漏。新的优化算法将检测并处理数组中的重复项,这可能会导致NgForOf指令不再正常工作,尤其是在树形结构上。
解决此问题的方法是使用trackBy函数来告诉Angular如何识别重复项。例如,在使用树形结构时,可以这样使用trackBy函数:
在组件类中声明trackBy函数并返回节点的id或唯一标识符:
trackByFn(index, node){ return node.id; }
在模板中使用trackBy函数:
这样,Angular将通过trackBy函数返回的标识符来识别重复节点,从而使NgForOf指令正常工作。
上一篇:angular13添加[formGroup]会禁用routerlinkActive
下一篇:Angular13withRxJS7:Howmigrate$obs.toPromise()tolastValueFrom($obs)withascript?