我有以下代码
axios
.get("some.url")
.then(res => {
console.log(...res.data);
this.setState({
isLoaded: true,
assignmentData: {...res.data}
});
console.log(this.assignmentData) //this returns undefined
})
它从后端获取一些数据并将其保存到状态变量中。服务器发送过来的数据格式如下
[{id:1, title:"abc"},{id:2,title:"bcd"}]
。但是,assignmentData
的值不会使用 setState 进行更新,因为以下 console.log
返回未定义。
如何使用从服务器接收到的数据更新 assignmentData
状态?
最佳答案
首先:assignmentData
将被添加到状态this.state.assignmentData
其次,this.setState(..)
是异步的。
如果你想在设置后查看数据,可以这样做:
this.setState({
isLoaded: true,
assignmentData: {...res.data}
}, () => {
console.log(this.state.assignmentData)
});
关于javascript - React setState 来更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59458043/