React Redux 提供函数 connect
将 Redux state
和 dispatch
绑定(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/