我是React的新手,只是一个关于setState()的问题,下面是一个组件:
...
handleEvent = (event) => {
this.setState({greeting: 'Hello'});
}
render() {
...
<button onClick={ this.handleEvent }>Click</button>
有人告诉我React异步应用更改,我的问题是:
Q1-是否表示在handleEvent函数完成之前不会更新组件的状态?并且状态只会在handleEvent函数完成后的一段时间内更新?
Q2-按照异步的含义,这意味着更改可以随时发生,是否还意味着状态更改仍然可以在handleEvent函数完成之前应用?只是一个概率问题,在大多数情况下,回调函数完成后状态更改才会生效?
答案 0 :(得分:5)
第1季度-是的。
Q2-否。JS函数具有运行到完成保证。换句话说:只要handleEvent
函数运行,其他函数就不会运行。状态更新肯定会在此之后发生。