batch: batching React rendering updates">batch: batching React rendering updates">
跳至主要内容

batch()

batch((fn: () => void))

在 v7.0.0 中添加

信息

如果您使用的是 React 18,则无需使用 batch API。React 18 会自动将所有状态更新批处理在一起,无论它们是在哪里排队的。

React 的 unstable_batchedUpdates() API 允许在事件循环滴答中将任何 React 更新批处理在一起,以进行单次渲染传递。React 已经在内部使用它来处理自己的事件处理程序回调。此 API 实际上是渲染器包(如 ReactDOM 和 React Native)的一部分,而不是 React 核心本身。

由于 React-Redux 需要在 ReactDOM 和 React Native 环境中工作,因此我们在构建时已从正确的渲染器中导入此 API 以供我们自己使用。我们现在还公开重新导出此函数,并将其重命名为 batch()。您可以使用它来确保在 React 之外派发的多个动作只导致一次渲染更新,例如

import { batch } from 'react-redux'

function myThunk() {
return (dispatch, getState) => {
// should only result in one combined re-render, not two
batch(() => {
dispatch(increment())
dispatch(increment())
})
}
}

参考资料