Использование контекстного хранилища в response-redux v.6-7 - PullRequest
0 голосов
/ 06 июня 2019

Я использую пакет npm redux-inject-reducer-and-saga. Он был создан с Reaction-Redux v.5.

Под капотом есть функция, которая возвращает функцию, которая создает класс React (код ниже), а затем внутри этого класса есть функция getInjectors , которая использует this.context.store для проверки магазина.

Начиная с 6-й версии, React-Redux меняет способ доступа к контексту. Компоненты должны быть обернуты внутри ReactReduxContext.

Итак, мой вопрос - как обернуть функции пакета с ReactReduxContext, чтобы получить доступ к хранилищу.

Спасибо за ваше время!

import PropTypes from "prop-types";
import hoistNonReactStatics from "hoist-non-react-statics";

import getInjectors from "./reducerInjectors";

export default ({key, reducer}) => WrappedComponent => {
  class ReducerInjector extends Component {
    static WrappedComponent = WrappedComponent;
    static displayName = `withReducer(${WrappedComponent.displayName ||
      WrappedComponent.name ||
      "Component"})`;
    static contextTypes = {
      store: PropTypes.object.isRequired,
    };

//THIS LINE
    injectors = getInjectors(this.context.store);

    UNSAFE_componentWillMount() {
      const {injectReducer} = this.injectors;

      injectReducer(key, reducer);
    }

    render() {
      return <WrappedComponent {...this.props} />;
    }
  }

  return hoistNonReactStatics(ReducerInjector, WrappedComponent);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...