React Native报错Element type is invalid,Context相关问题无法定位求解
报错原因排查
你的代码存在3处明确的语法错误,直接触发该报错:
- Context 实例创建错误
React.createContext是构造方法,必须调用后才能得到合法的Context实例,你当前未添加调用括号,导致MyContext.Provider为undefined,完全匹配报错提示的「得到undefined」异常。
修正./src/context/index.js中对应代码:
// 错误写法 const MyContext = React.createContext; // 正确写法 const MyContext = React.createContext();
- 自定义组件名未遵循首字母大写规范
React 规定所有自定义组件必须首字母大写,否则会被识别为原生HTML标签触发报错,你的根组件命名为小写开头的provider不符合规范。
修正./Project/index.js(你写的intext为拼写错误,应为index.js)中对应代码:
// 错误写法 const provider = () => ( <MyProvider> <App/> </MyProvider> ) // 正确写法 const RootProvider = () => ( <MyProvider> <App/> </MyProvider> )
- 组件注册逻辑错误
注册根组件时需对应修改组件名引用:
// 错误写法 AppRegistry.registerComponent(appName, () => provider); // 正确写法(配合上面的组件名修改) AppRegistry.registerComponent(appName, () => RootProvider);
修改完以上3处后重新运行项目,报错即可解决。
内容的提问来源于stack exchange,提问作者Dr. ShRo0mH3Ad
相关产品推荐
相关产品推荐

