reactjs - 更好的连续调度方法?
问题描述
在 React 中,我通常创建 reducer 来处理所有事情dispatch
。但是在某些极端情况下,我做了这样的事情:
dispatch({type: ADD_ERROR, payload: {name: 'vin', message, id}});
dispatch({type: UPDATE_VEHICLE_INFO, id, payload: ''});
确实,我可以扩展ADD_ERROR
处理这种极端情况的能力,但对于新开发人员来说,这不太明显。所以我不清楚做出这样的改变是否完全是一件积极的事情。
useMemo
此外,在使用多个调度的情况下(使用功能性组件,而不是类组件以及使用 Context,而不是 Redux),包装一个组件来解决问题。
解决方案
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())
})
}
}
推荐阅读
- javascript - 将项目添加到弹出菜单
- python - 在 Django 更新方法中使用 F() 表达式
- c# - 如果条件检查一个列表的所有值是否存在于另一个列表中
- python - Errno 13 Permission denied: while loading csv files and plot a gaussian fit
- reactjs - 使用 ReactJS 按不同标准过滤待办事项
- python - 如何根据节点的邻接性使用 NetworkX 绘制图形
- visual-studio-code - VS Code Snippets 对点字符过于贪婪
- android - 未连接适配器;跳过datalist中的布局问题
- python - Python - Panda 在一个条件下将一个 csv 拆分为多个文件
- arrays - 了解 Minizinc 中的一个关键概念 - 声明一组变量,然后使用它来声明一个值数组