【发布时间】:2020-07-31 22:54:29
【问题描述】:
【问题讨论】:
-
setState 是异步函数。渲染函数中的值是否也没有更新?如果可以,你能提供一个更完整的例子吗?
-
@TomSlutsky 我明白了!我不知道 setState 是一个异步函数。那我会用 async-await 解决这个问题!谢谢!
标签: javascript node.js reactjs
【问题讨论】:
标签: javascript node.js reactjs
您需要将setState 与callback 一起使用
根据官方文档
setState() 并不总是立即更新组件。它可能会批量更新或将更新推迟到以后。这使得在调用 setState() 之后立即读取 this.state 是一个潜在的陷阱。相反,请使用 componentDidUpdate 或 setState 回调 (setState(updater, callback)),它们都保证在应用更新后触发。
this.setState((prevState)=>{
userInfo:{
...prevState.userInfo,
timestamp:timestamp
},()=>console.log(this.state.userInfo.timestamp)) // console.log here as setState is async operation
【讨论】: