0

我正在将包含嵌套数组的数据响应中的数据推送到组件中的静态数据数组中。

以编程方式将数据正确推送到对象中。我在浏览该方法时看到了这一点,并看到我的 for 循环成功地将项目添加到已经存在的数组中。正在添加“OnInit”

在我看来,这根本不是将项目添加到表格中。

 ngOnInit(): void {
    this._data.getContacts().subscribe(data => this.addAsyncData(data));
  }

  addAsyncData(result){
    for(let i =0; i < result.length; i++) {
      this.people.push(result[i]);
  }
}

我怀疑这与生命周期钩子有关。

4

1 回答 1

2

我需要查看更多代码才能确定,但​​您的更改似乎没有反映在模板的呈现中,因为您对“人员”数组的添加不会触发更改检测。

这是因为更改检测器会查找对绑定对象的引用的更改(在本例中,是指向数组的“指针”)。要触发更改检测,您需要更改引用(即创建一个新数组)。

尝试这个:

addAsyncData(result){
    this.people = [...this.people, ...result];
}

它创建一个包含原始内容和新内容的新数组。

于 2020-04-24T02:14:29.903 回答