我正在使用a hoc来包装组件。这个在卸载时调度一个动作。为此,它调用'resetState'方法。但是,如果我想在包装组件中的另一个位置调用相同的resetState()
,该怎么办? this.resetState
不起作用(逻辑上),我只能想象将函数作为prop传递给包装器。
const resetAtUnmount = function (type) {
// return the function to be called by redux 'connect'
return function decorate(WrappedComponent) {
// return the final class
return class extends React.Component {
resetState() {
store.dispatch({ type });
}
componentWillUnmount() {
this.resetState();
}
render() {
return <WrappedComponent {...this.props} />;
}
};
};
};
导出默认resetAtUnmount;
答案 0 :(得分:2)
听起来你回答了自己的问题。将resetState作为道具传递:<WrappedComponent {...this.props} resetState={this.resetState} />