我正在尝试在我的应用程序中实现React-context,以摆脱道具钻探。创建contextProvider时,出现以下错误-
“元素类型无效:预期使用字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义的文件中导出组件,或者混合使用默认名称并命名为导入”。
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;
答案 0 :(得分:0)
警告是否提供任何信息?