我是React的新手,仅是setState()的一个问题,下面是一个组件:
...
handleEvent = (event) => {
this.setState({greeting: 'Hello'});
}
render() {
...
<button onClick={ this.handleEvent }>Click</button>
有人告诉我React异步应用更改,我的问题是:
Q1-是否表示在handleEvent函数完成之前不会更新组件的状态?并且状态只会在handleEvent函数完成后的一段时间内更新?
Q2-按照异步的含义,这意味着更改可以随时发生,是否还意味着在handleEvent函数完成之前状态更改仍然可能适用?这只是一个概率问题,在回调函数完成后,大多数情况下会应用状态更改吗?
最佳答案
Q1-是的。
问题2-否。JS函数具有运行到完成的保证。换句话说:只要handleEvent
函数运行,其他函数就不会运行。状态更新肯定会在此之后发生。
关于javascript - 何时调用setState()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58571002/