Sta*_*tan 1 javascript arrays json reactjs
我正在获取状态中的对象数组,并且尝试为每个对象添加一个属性。
问题是我可以看到我的属性被添加到每个对象中,但是当我映射所有这些对象并尝试console.log
它时,我得到了undefined
添加属性
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
return data;
}
Run Code Online (Sandbox Code Playgroud)
state = {
data: []
}
Run Code Online (Sandbox Code Playgroud)
addFavourites 在这里被调用:
getItem = () => {
this.service
.mergeData()
.then((body) => {
this.setState({
data: body
},
() => {
this.addFavourites();
},
() => {
this.dataToFilter();
});
});
}
componentDidMount(){
this.getItem();
}
Run Code Online (Sandbox Code Playgroud)
在渲染功能中,我可以看到所有对象,包括最喜欢的对象
console.log(data.map((e) => e));
Run Code Online (Sandbox Code Playgroud)
但这给出了一个未定义的数组
console.log(data.map((e) => e.favourite));
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
首先,欢迎光临!你应该更清楚地表明这个问题是关于 React 的。
现在回答一下,每个状态修改都将使用 进行setState
,因此您的addFavourites
函数应该如下所示:
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
this.setState({ data: data });
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5875 次 |
最近记录: |