[英]React - Adding a property to an object inside of array in component's state
我正在获取状态中的一个对象数组,我正在尝试为每个对象添加一个属性。
问题是我可以看到我的属性被添加到每个对象,但是当我映射所有这些对象并尝试console.log
,我得到了undefined
添加属性
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
return data;
}
state = {
data: []
}
addFavourites在这里调用:
getItem = () => {
this.service
.mergeData()
.then((body) => {
this.setState({
data: body
},
() => {
this.addFavourites();
},
() => {
this.dataToFilter();
});
});
}
componentDidMount(){
this.getItem();
}
在渲染功能中,我看到我的所有对象,包括收藏
console.log(data.map((e) => e));
但这给出了一个未定义的数组
console.log(data.map((e) => e.favourite));
我怎么解决这个问题?
首先,欢迎! 您应该更清楚地知道这个问题是关于React的。
现在回答,每个状态修改都是使用setState
,所以你的addFavourites
函数应该是这样的:
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
this.setState({ data: data });
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.