我正在使用'ngFor'指令初始化子组件列表:
父组件:
<div *ngFor="let item of serviceGetter.items | async; let i = index">
<child-component [item]="item" [currentIndex]="i"></child-component>
</div>
服务:
@Injectable()
export class TermsService {
private dataStore: {
data: any[];
} = { data: [] };
get items() {
return this._data$.asObservable();
}
//data are populated inside this method
someMethod() {
this.dataStore.data= result;
this._data$.next(Object.assign({}, this.dataStore).data);
}
updateSpecificItem() {
....
this.dataStore.data[index] = {
...somedata,
};
}
}
“子组件”更改检测设置为“ OnPush”。 问题是当“ updateSpecificItem()”函数在“索引”位置的子组件被重新初始化(构造函数调用)时。是否有解决方案可以避免这种情况,或者这是公认的行为?