首页 > 解决方案 > 更好的连续调度方法?

问题描述

在 React 中,我通常创建 reducer 来处理所有事情dispatch。但是在某些极端情况下,我做了这样的事情:

dispatch({type: ADD_ERROR, payload: {name: 'vin', message, id}});
dispatch({type: UPDATE_VEHICLE_INFO, id, payload: ''});

确实,我可以扩展ADD_ERROR处理这种极端情况的能力,但对于新开发人员来说,这不太明显。所以我不清楚做出这样的改变是否完全是一件积极的事情。

useMemo此外,在使用多个调度的情况下(使用功能性组件,而不是类组件以及使用 Context,而不是 Redux),包装一个组件来解决问题。

标签: reactjsreducers

解决方案


React-Redux 的batch()api 允许您将多个操作批处理在一起。

他们文档中的示例

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

推荐阅读