【发布时间】:2019-09-13 09:35:57
【问题描述】:
<div *ngFor="let obj of objs; trackby:objToId">
<sample-component [obj]="obj"></sample-component>
</div>
实际行为:
-
sample-component不会收到有关 obj 属性更改的通知。
期望的行为:
-
sample-component应该被通知任何 obj 属性更改而无需重新渲染组件。
如何实现期望的行为?
【问题讨论】:
-
尝试删除 trackBy
-
@federicoscamuzzi 如果我删除它,整个组件将被重新初始化,这将重置其中的表单输入。我希望它只收到有关输入更改的通知,而不是重新渲染。
-
您如何更改数据?你是在改变对象,还是覆盖它们?所以:
objs[n].someProperty = newValue,还是objs[n] = someNewObject? -
@mbojko 我正在改变对象,因为 objs 来自 ngxs 状态。