何时调用setState()?

时间:2019-10-26 13:01:24

标签: javascript reactjs

我是React的新手,只是一个关于setState()的问题,下面是一个组件:

...
handleEvent = (event) => {
 this.setState({greeting: 'Hello'});
 }

render() {
   ...
   <button onClick={ this.handleEvent }>Click</button>

有人告诉我React异步应用更改,我的问题是:

Q1-是否表示在handleEvent函数完成之前不会更新组件的状态?并且状态只会在handleEvent函数完成后的一段时间内更新?

Q2-按照异步的含义,这意味着更改可以随时发生,是否还意味着状态更改仍然可以在handleEvent函数完成之前应用?只是一个概率问题,在大多数情况下,回调函数完成后状态更改才会生效?

1 个答案:

答案 0 :(得分:5)

第1季度-是的。

Q2-否。JS函数具有运行到完成保证。换句话说:只要handleEvent函数运行,其他函数就不会运行。状态更新肯定会在此之后发生。