【发布时间】:2020-09-26 16:36:14
【问题描述】:
根据我在 react 版本 16(当前)及以下版本中的理解,setState 调用是批处理的,如果它们是在组件生命周期事件或事件处理程序中进行的。否则,为了批量调用,可以使用 ReactDOM.unstable_batchedUpdates 中的一个选项。
如果事件处理程序是 async 函数,浏览器将触发事件处理程序但随后将返回一个承诺,因此实际的事件处理程序 Promise 回调将不会运行,直到选择下一个微任务在事件循环中。换句话说,setState 更新实际上不会发生在即时事件处理程序中。
这是否意味着如果我们希望在事件处理程序中批处理 setState 更新,我们需要选择 ReactDOM.unstable_batchedUpdates?
【问题讨论】:
标签: javascript reactjs async-await dom-events setstate