所以我试图使用Recompose将生命周期方法移动到HOC装饰器中。像这样......
export const fetchOptions= lifecycle({
componentDidMount() {
this.props.dispatch(change('mainForm', 'orderHeader.proxies', this.props.currentSalesRepId));
},
componentDidUpdate(prevProps) {
if (this.props.total != prevProps.total){
this.props.dispatch(change('mainForm', 'totalPurchase', this.props.total));
}
}
});
然后我尝试将其添加到我的表单组件中,该组件呈现我的所有标记。像这样。
export default compose(
connect(mapState, mapDispatch),
fetchOptions,
)(MainReduxForm)
我一直收到一个错误,指出this.props.dispatch不是一个函数......有什么想法吗?我故意保留这个简短的内容以避免文字墙。如果您需要其他信息,请告诉我们!
答案 0 :(得分:3)
此处的问题是dispatch
方法只会在您提供mapDispatchToProps
功能或您的情况下自动添加到道具中。 mapDispatch
所以你有两个选择,从你的连接电话中删除mapDispatch
。
export default compose(
connect(mapState),
fetchOptions,
)(MainReduxForm)
或者如果您在mapDispatch
内部正在做某事,只需将调度添加到您的返回对象
const mapDispatchToProps = (dispatch) => {
return {
dispatch,
...
other dispatch functions here
...
}
}
}