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

时间:2017-04-11 10:57:32

标签: reactjs components mixins

我正在使用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;

1 个答案:

答案 0 :(得分:2)

听起来你回答了自己的问题。将resetState作为道具传递:<WrappedComponent {...this.props} resetState={this.resetState} />