![](/img/trans.png)
[英]React-redux dispatch function with parameters from child component is undefined
[英]Pass dispatch function to child component
我正在使用redux开发通用的React应用程序。 在动作创建者中,我将数据分发给存储。
在ComponentDidMount函数中,分派函数还可以,但是当我想将其传递给渲染函数中的组件时,出现错误: 无法读取未定义的属性“ dispatch”。如何将分派函数传递给组件?
货柜代码:
class DealContainer extends React.Component {
static readyOnActions(dispatch, params) {
return Promise.all([
dispatch(DealsActions.fetchDealData(params.id)),
dispatch(SubmitActions.fetchSubmitInitialData()),
]);
}
componentDidMount() {
DealContainer.readyOnActions(this.props.dispatch,this.props.params);
}
render() {
return(
<MyComponent
changeStoreFunction = {this.props.dispatch(SubmitActions.changeUserId)}
/>)
}
const mapStateToProps = (state, ownProps) => {
return {
dealData: state.dealData,
routing: ownProps.location.query,
submitInitialData: state.submitInitialData,
id: ownProps.params.id,
mapInfo: state.mapInfo,
areaList: state.areaList,
}
};
DealContainer.propTypes = {
params: PropTypes.shape({
id: PropTypes.string.isRequired,
}).isRequired,
dispatch: PropTypes.func.isRequired,
};
}
export default connect(mapStateToProps)(DealContainer);
实际上,您需要使用mapDispatchToProps来访问调度功能。
在那里,您可以定义将在组件render方法中调用的函数:
const mapDispatchToProps = (dispatch) => {
return {
yourFunctionToCallFromComponent: () => {
dispatch(yourAction())
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(DealContainer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.