我是 Angular 的新手,这是我的第一个应用程序。我有一个父组件,它使用服务从 API 获取数据。根据服务的响应,我创建了一个数组并将其作为属性传递给子组件。在子组件中,我有跟随 ngOnChange 事件
ngOnChanges(changes: any) {
console.log("Mode total in mode", this.modeTotal);
this.modeTotal.map(mode => {
console.log("For each");
this.doughnutChartLabels.push(mode.name);
this.doughnutChartData.push(mode.total);
console.log(`Loop inside onChange Name: ${mode.name} and Total: ${mode.total}`);
});
console.log("DoughnutChartLabels", this.doughnutChartLabels);
console.log("DoughnutChartData", this.doughnutChartData);
}
我面临的问题是 map 功能上方和下方的控制台正在运行,打印modeTotal、doughnutChartLabels 和doughnutChartData 的内容但不是 map 函数中的字符串。 modeTotal 包含我希望返回的数据数组。
我错过了什么?
注意:我将数据从另一个从 API 接收数据的组件推送到 modeTotal。即使将新数据插入 modeTotal 也不会更新。
最佳答案
当新数据被插入数组时,更改事件不会发生在数组上,因为变量指的是同一个对象。尝试添加一个局部变量来监控推送变化。
关于javascript - 数组中的映射在 ngOnChange 事件 Angular 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478092/