我是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/

10-10 07:03