首页 > 解决方案 > mapDispatchToProps 在 Redux 领域的用途

问题描述

mapDispatchToProps 是否有目的:

const mapDispatchToProps = dispatch => {
  return {
    addProductToCart: product => dispatch(addProductToCart(product))
  }
}

或者这样做是否可以接受:

const mapDispatchToProps = dispatch => {
  return {dispatch};
}

然后只需调用:

props.dispatch()在组件中

标签: reactjsreduxreact-redux

解决方案


mapDispatchToProps允许您简单地指定组件需要调度的操作。您可能会采用这种方法,因为它更具声明性(让mapDispatchToProps处理所有繁重的工作,以便您可以轻松地从组件调用函数),或者您可能希望与未连接的 redux 组件共享调度函数。

事实上,完全没有mapDispatchToProps功能是完全可以接受的。

另外根据您的示例。而不是执行以下操作:

const mapDispatchToProps = dispatch => {
  return {dispatch};
}

您可以简单地从方法中排除该mapDispatchToProps函数,connect如下所示:

connect(mapStateToProps)(MyComponent)

然后在您的组件中执行以下操作:

props.dispatch({ type: 'MY_ACTION' })}

推荐阅读