Реагировать - Новый Context API не работает с Class.contextType, но работает с Context.Consumer - PullRequest
0 голосов
/ 02 ноября 2018

Я пробую новый контекстный API, используя HOC, который возвращает упакованный компонент. Это не работает, когда я использую Class.contextType = Context подход:

return function myHOC(WrappedComponent) {
  class HOC extends React.Component {
    // static contextType = MyContext;

    render() {
      console.log(this.context);  // HERE, this logs `{}`

      // ..do stuff
      return <WrappedComponent {...this.props} />
    }
  }
  HOC.contextType = MyContext;

  return HOC;
};

Однако я создал тот же код, но с использованием <MyContext.Consumer>, и он работал нормально:

return function myHOC(WrappedComponent) {
  const HOC = (props) => (
    <MyContext.Consumer>
      {(context) => {
        console.log(context);  // HERE, correct values

        return <WrappedComponent {...props} /> 
      }}
    </MyContext.Consumer>
  );

  return HOC;
};

Я что-то здесь не вижу?

1 Ответ

0 голосов
/ 02 ноября 2018

Оказывается, что хотя я обновил свои реагирующие сценарии до 2.0, мне пришлось самостоятельно обновлять реагировать на 16.6 (ранее - 16.3).

У меня сложилось впечатление, что реакции-скрипты также будут обрабатывать версию реакции. Мой плохой, запутался там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...