Как вызвать метод оболочки в реакции

Я использую специальный, чтобы обернуть компонент. Этот hoc отправляет действие, когда он не подключен. Для этого он вызывает метод resetState. Но что, если я захочу назвать то же самое resetState() в другом месте в завернутом компоненте. this.resetState не работает (логически), я могу только представить передачу функции в качестве опоры для оболочки.

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 ответ

Решение

Похоже, вы ответили на свой вопрос. Передайте resetState как опору: <WrappedComponent {...this.props} resetState={this.resetState} />

Другие вопросы по тегам