首页 > 解决方案 > 当数组项更新时,角度防止重新渲染

问题描述

我有一个组件,我在其中循环一个数组以显示它拥有的项目;

<div *ngFor="let field of requirement.requirementFields; let i = index">
  <requirement-field (data)="handleReqData(i, $event)"></requirement-field>
</div>

现在孩子requirement-field有一堆输入。当这些输入的值发生变化时,我会发出一个事件data。我需要requirmentFields使用每个需求字段内发生的更改来更新 items 数组。所以,我正在这样做:

  handleReqData(i: number, data: IRequirementField) {
    this.requirement.requirementFields[i] = {...data};
  }

但是一旦数组中的项目更新(因为handleReqData)屏幕上就会出现一个可见的闪光,告诉我角度正在重新渲染列表。此外,在闪存需求字段的数据被重置后,并不反映需求字段数组中的内容。我在这里做错了什么?

标签: angular

解决方案


推荐阅读