Redux-mapDispacthToProps-从卸载事件调用时未调用prop



当unload事件被触发时,我需要调用API[browser/tab close]。我想分配一个操作,该操作将负责调用API。然而,该行动似乎没有被调用。

unload(e) {
if (shouldCallApi()) {
this.props.submit();
}
}
export const handleSubmit = dispatch => () => {
dispatch(submitApp());
return true;
};
export const mapDispatchToProps = dispatch => ({
submit:  handleSubmit(dispatch),
});

根本没有调用handleSubmit方法

问题来自于在mapDispatchToProps中初始化submit

submit: handleSubmit(dispatch),实际上是用handleSubmit的返回值初始化submit的,这个值没有定义,因为我想这不是你想要做的。

您需要使用函数对象设置submit,以便能够将其作为函数调用,只需引用其名称即可。

unload(e) {
if (shouldCallApi()) {
this.props.submit(dispatch);
}
}
export const handleSubmit = dispatch => () => {
dispatch(submitApp());
return true;
};
export const mapDispatchToProps = dispatch => ({
submit: handleSubmit,
});

这意味着,您必须使用dispatch作为参数来调用this.props.submit(dispatch);,以便在卸载函数中共享

最新更新