在React中setState()之后的代码会运行吗?

ale*_*hel 1 setstate reactjs

试图了解React中setState()的工作原理。我的问题是这个。

如果我有其中一行是setState()的函数,那么在重新渲染之前,该行之后的代码行是否仍会运行?例如,在下面的代码中,

foo(value) {
     this.setState({stateValue: value});
     console.log("Stuff after setState");
}
Run Code Online (Sandbox Code Playgroud)

在该代码中,console.log是否保证可以运行?它在我测试时运行,但是我不确定这是否仅是因为React还没有时间重新渲染。我可以期望this.setState()之后的代码运行吗?

Shu*_*tri 7

setStateasynchronous函数,就像将任何异步函数传递给事件循环一样,setState也传递给事件循环,执行之后的任何代码都将被执行。

一旦setState方法完成执行,它将触发render方法,此时React将在文档渲染上工作。