如何在反应中调用包装器的方法

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} />