javascript - 如何在 mapDispatchToProps 中访问 mapStateToProps 添加的属性?

标签 javascript reactjs redux react-redux jsx

React Redux 提供函数 connect 将 Redux statedispatch 绑定(bind)到 React 组件(作为属性)。

connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])

mapStateToProps(state, [ownProps]): stateProps

mapDispatchToProps(dispatch, [ownProps]): dispatchProps

如何在函数 mapDispatchToProps 中访问函数 mapStateToProps 添加的属性?

例如,我使用函数 mapStateToProps 向组件添加属性 propertyFromState,如何在函数 mapDispatchToProps 中访问属性 propertyFromState ?

我尝试使用参数 ownProps 访问它,但它是 undefined

最佳答案

您无法访问 mapDispatchToProps 中的 Prop 。相反,您可以在调用函数时将参数传递给该函数。例如,如果你想将 prop 传递给 action,你可以通过多种方式进行。

首先:

function mapDispatchToProps(dispatch) {
  return {
    onNameChanged: (name) => dispatch({ type: 'NAME_CHANGED', payload: name })
  }
}

或者

function mapDispatchToProps(dispatch) {
   return {
     actions: bindActionCreator(action, dispatch);
   }
}

从您的组件中调用 this.props.actions(propertyFromState)。在 actions.js 中创建接受这样的参数的 Action

function action1(property){
  return { type: 'NAME_CHANGED', payload: property }
}

关于javascript - 如何在 mapDispatchToProps 中访问 mapStateToProps 添加的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50401939/

相关文章:

javascript - 如何访问对象变量的字段以作为 props 传递给其子组件?

javascript - 如何使用 ezMark 生成的复选框?

javascript - 如何在 React 中映射嵌套的对象数组

android - 为什么 ReactNative Dimensions 组件报告分辨率降低?

angularjs - React/Redux 等待商店更新

javascript - react Redux 表单 : form is submiting with old values

javascript - 只能单击一次

javascript - 无法使用 Facebook 护照成功重定向

javascript - 如何使用 MatterJS 计算跳跃到目标的速度?

javascript - 切换开关在 react native 平面列表中无法正常工作