Я пытаюсь реализовать React-context в своем приложении, чтобы избавиться от бурения реквизита. При создании contextProvider я получаю следующую ошибку:
"Тип элемента недопустим: ожидал строку (для встроенных компонентов) или класс / функцию (для составных компонентов), но получил: undefined. Скорее всего, вы забыли экспортировать компонент из файла, в котором он определен, или вы могли смешать up default и именованный импорт ".
const SharedThemeContext = React.createContext ();
export class SharedThemeProvider extends Component {
static propTypes = {
children: PropTypes.func.isRequired
}
constructor(props) {
super(props);
this.state = {
isOpen: false,
message: '',
};
}
openSnackbar = (message) => {
this.setState({
message,
isOpen: true,
});
};
closeSnackbar = () => {
this.setState({
message: '',
isOpen: false,
});
};
render() {
const { children } = this.props;
return (
<SharedThemeContext.Provider
value={{
openSnackbar: this.openSnackbar,
closeSnackbar: this.closeSnackbar,
snackbarIsOpen: this.state.isOpen,
message: this.state.message,
}}
>
{children}
</SharedThemeContext.Provider>
);
}
}
export const SharedThemeConsumer = SharedThemeContext.Consumer;