javascript - React setState 来更新对象

标签 javascript reactjs

我有以下代码

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/

相关文章:

javascript - 具有相同类名的两个 div 相互重叠

javascript - 如何使用 Ajax 通过 Bootstrap Modal 提交表单

reactjs - 为什么我对 React 应用程序中的子路径的 HTTP GET 调用给出了 404 NOT Found 而不是 HTML?

javascript - redux 存储的最大内存大小是多少?

javascript - 构建期间发生 react 、redux 和 typescript 错误

php - 在外部 JS 文件中包含 PHP 变量?

javascript - 在 FlatList 上使用 React Native 搜索过滤器

javascript - 将字符串转换为日期时,给定月份的第一天将转换为上个月的最后一天

javascript - React fetch, “credentials: include” 中断了我的整个请求,我得到了一个错误

reactjs - 避免具有异步数据依赖性的事件链