【发布时间】:2020-09-03 12:42:45
【问题描述】:
我正在尝试使用 prevState 立即更新状态值,但值不会改变。我知道 seState 是异步函数,但如果我使用 prevState,不应该立即更新吗?我在哪里做错了?
count: 0
this.setState((prevState) => ({
count: prevState +1
}));
console.log(this.state.count+" count")
【问题讨论】:
-
"但是如果我使用 prevState,不应该立即更新吗?" 不,不管你使用什么形式的
setState。它始终是异步的。 -
无论您是否使用之前的状态,状态都会异步更新。组件特定渲染中的状态和道具是恒定的。
-
我明白了,谢谢,那么有什么理由在更新状态后立即获得价值?
-
为什么在更新状态后立即获取值? - 您无法在同一渲染中获取状态的更新值,但您可以传递第二个可选值回调到
this.setState。状态更新后调用此回调。
标签: javascript reactjs setstate