отреагировать провайдером контекста выдает ошибку в методе рендеринга - PullRequest
0 голосов
/ 12 сентября 2018

Я экспериментирую с API реагирующего контекста, и это код, над которым я работаю:

import * as React from 'react';

interface ProviderState {
  themeColor: string;
}

interface UpdateStateArg {
  key: keyof ProviderState;
  value: string;
}

interface ProviderStore {
  state: ProviderState;
  update: (arg: UpdateStateArg) => void;
}

const Context = React.createContext({} as ProviderStore);

class Provider extends React.Component<{}, ProviderState> {
  readonly state = {
    themeColor: 'red'
  };

  private update = ({ key, value }: UpdateStateArg) => {
    this.setState({ [key]: value });
  }

  render() {
    const store: ProviderStore = {
      state: this.state,
      update: this.update
    };

    return (
      <Context.Provider value={store}>
         {this.props.children}
      </Context.Provider>
    );
  }
}

export { Provider };

«Провайдер» в методе рендеринга выдает следующую ошибку:

enter image description here

"JSX element type 'ReactElement<any> | null' is not a constructor function for JSX elements.Type 'null' is not assignable to type 'ElementClass"

В файле декларации реагирования 'Provider' был объявлен, и я думаю, что он был объявлен правильно, или я могу ошибаться!

Я использую следующие версии:

react: "^16.5.0"
react-dom: "^16.5.0"
@types/react: "^16.4.7"
@types/react-dom: "^16.0.7"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...