我正在获取状态中的对象数组,并尝试为每个对象添加属性。
问题是我可以看到我的属性已添加到每个对象中,但是当我通过所有这些对象进行映射并尝试{
"extends": [
"tslint:recommended"
],
"rules": {
}
linterOptions: {
"exclude: [
"mysrc/routes/routes.ts"
]
}
}
时,就会得到console.log
添加属性
undefined
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
return data;
}
addFavourites的呼叫位置:
state = {
data: []
}
在渲染功能中,我看到了我所有的对象,包括收藏夹
getItem = () => {
this.service
.mergeData()
.then((body) => {
this.setState({
data: body
},
() => {
this.addFavourites();
},
() => {
this.dataToFilter();
});
});
}
componentDidMount(){
this.getItem();
}
但这会给出未定义的数组
console.log(data.map((e) => e));
我该如何解决?
答案 0 :(得分:3)
首先,欢迎光临!您可能应该更清楚地知道这个问题是关于React的。
现在答案是,每个状态修改都将使用setState
进行,因此您的addFavourites
函数应如下所示:
addFavourites() {
let data = this.state.data.map((e) => {
e.favourite = false;
return e;
});
this.setState({ data: data });
}