javascript - 在 reactjs 中首次运行时在控制台上获取空对象

标签 javascript reactjs

我有一个按钮,我在单击该按钮时调用箭头函数 contentLoad。我有两个对象。一个是“obj”,另一个是“content”,它只是“obj”的副本。

this.setState({content: obj})

当我在控制台上打印它们时。另一个即复制的第一次点击为空。然而,第一次点击后一切看起来都很好。

整个项目是here

而js代码是this

最佳答案

一个鲜为人知的事实是 this.setState 是 React 中的一个异步函数。 它需要第二个参数,该参数是在实际设置状态后执行的回调。

this.setState(new_state, optional_callback_function)

因此,当您在记录 content 时看到打印出 null 时,这是因为在调用 console.log 之前尚未设置状态> 并且您只看到初始值 null

要解决这个问题并每次都能看到正确的值,您可以像这样重构您的代码:

this.setState({content: obj}, () => {
   console.log(this.state.content);
})

关于javascript - 在 reactjs 中首次运行时在控制台上获取空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56725708/

相关文章:

javascript - 使用 React Redux 对登录用户进行 post 调用

javascript - 你能在不同的渲染和上下文中重用 React 元素吗?

reactjs - typescript 找不到在全局 .d.ts 文件中声明的命名空间

javascript - 如何在 ReactJS 中将对象插入数组

javascript - Openlayers/Openstreetmap 背景是垂直条纹和压扁的

javascript - 如何使用 PHP CodeIgniter、JQuery、AJAX 检查数据库中是否已存在 ID 验证

javascript - 如何在 Javascript 中执行具有异步条件的 "for"循环?

reactjs - Ant 设计表点击表格单元格

javascript - IE8 是否支持 javascript .map() 函数?

javascript - 如何在卡片中将我的网页分享到 Twitter