跳至主要內容

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

參考文獻