React 的 setState 是异步的还是什么?
Is React's setState asynchronous or something?
嗯。我正在使用 setState
,出于某种原因,它后面的代码无法访问新状态!
什么给了?!
是的。它是异步的。我发布这个是因为这对新的 React 用户来说并不是很明显。
React "queues" 更新组件的状态。
如果您需要执行依赖于新状态更改的代码块,请像这样传递回调:
getInitialState: function () {
return {
isFinalCountdown: false,
}
}
//blablabla
//then somewhere you got...
this.setState(
{isFinalCountdown: true},
function () {//<--- whoa. this solves your all your synchrosity woes!
console.log(this.state.isFinalCountdown); //true!
}
);
console.log(this.state.isFinalCountdown); //false!
所有这些都在文档中,只是真正需要重申的内容,以避免 React 新用户可能遇到的那些常见错误。
查看:https://facebook.github.io/react/docs/component-api.html#setstate
嗯。我正在使用 setState
,出于某种原因,它后面的代码无法访问新状态!
什么给了?!
是的。它是异步的。我发布这个是因为这对新的 React 用户来说并不是很明显。
React "queues" 更新组件的状态。
如果您需要执行依赖于新状态更改的代码块,请像这样传递回调:
getInitialState: function () {
return {
isFinalCountdown: false,
}
}
//blablabla
//then somewhere you got...
this.setState(
{isFinalCountdown: true},
function () {//<--- whoa. this solves your all your synchrosity woes!
console.log(this.state.isFinalCountdown); //true!
}
);
console.log(this.state.isFinalCountdown); //false!
所有这些都在文档中,只是真正需要重申的内容,以避免 React 新用户可能遇到的那些常见错误。
查看:https://facebook.github.io/react/docs/component-api.html#setstate