React 的 setState 是异步的还是什么?

IT技术 javascript asynchronous reactjs state synchronous
2021-05-09 21:58:20

唔。我正在使用setState,但出于某种原因,它后面的代码无法访问新状态!

是什么赋予了?!

1个回答

是的。它是异步的。我发布这个是因为这对于新的 React 用户来说并不是很明显。

react“队列”更新到组件的状态。

如果您需要执行依赖于新状态更改的代码块,请传递如下回调:

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