你一直以来都错误地使用 mapDispatchToProps

2025-06-07

你一直以来都错误地使用 mapDispatchToProps

执行以下操作:

const mapDispatchToProps = {
  decrement: () => ({ type: "DECREMENT" }),
  increment: () => ({ type: "INCREMENT" })
};

Enter fullscreen mode Exit fullscreen mode

而不是这样:

const mapDispatchToProps = dispatch => {
  return {
    decrement: () => dispatch({ type: "DECREMENT" }),
    increment: () => dispatch({ type: "INCREMENT" })
  };
};
Enter fullscreen mode Exit fullscreen mode

不同之处在于,我们依靠 react-redux 将调度注入到 mapDispatchToProps 对象中的每个函数值上,而不是依靠 react-redux 将调度注入到 mapDispatchToProps 函数中。

如果您没有有效地测试您的代码,那么这是一种增加代码覆盖率的简单方法,但它也可以防止出现错误,因为您不必担心转发额外的参数。

有关 github 上的工作示例,请参阅此 repo:https://github.com/mcrowder65/map-dispatch-to-props

文章来源:https://dev.to/mcrowder65/you-ve-been-doing-mapdispatchtoprops-wrong-this-entire-time-582m
PREV
来自伊朗的消息,请求帮助创建更好的代理
NEXT
使用 Typescript 在 React 中传递 props 直接从 props 中获取 处理对象 将相同的 prop 传递给多个组件