我有以下代码

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/

10-09 07:47