在Angular 6中,*ngFor指令会根据数组的变化来更新视图。但是有时候,当数组的元素发生改变时,视图可能不会自动更新。以下是一些解决这个问题的方法:
this.array = this.array.map(item => Object.assign({}, item, { property: newValue }));
首先,在组件的构造函数中注入ChangeDetectorRef。
constructor(private cdr: ChangeDetectorRef) {}
然后,在修改数组后调用cdr.detectChanges()。
this.array = [...this.array];
this.cdr.detectChanges();
首先,在组件中定义一个trackBy函数。
trackByFn(index, item) {
return item.id;
}
然后,在*ngFor指令中使用trackBy函数。
{{ item.property }}
这些方法可以帮助解决Angular 6中*ngFor不更新视图的问题。