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())
})
}
}