如何在反应中调用包装器的方法
how to call a wrapper's method in react
我正在使用临时包装组件。这个 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;
听起来你回答了你自己的问题。将 resetState 作为道具传递:<WrappedComponent {...this.props} resetState={this.resetState} />
我正在使用临时包装组件。这个 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;
听起来你回答了你自己的问题。将 resetState 作为道具传递:<WrappedComponent {...this.props} resetState={this.resetState} />