我使用新的React 16.3上下文API实现了一些功能。这在浏览器中工作得很好,但是React Native中的相同代码永远不会起作用(使用react-native-web编译到浏览器和一个在尝试添加上下文之前工作得很好的expo移动应用程序)。当它失败时,它会记录错误:
不变违规:元素类型无效:期望一个字符串(用于内置组件)或一个类/函数(用于复合组件)但得到:object。
通常这意味着我搞砸了某个地方的导入/导出默认/导出,但在这种情况下,它们似乎是有序的。仅当我尝试使用createContext()组件时才会出现此错误。当我创建提供者时,无论我是否有消费者,都会发生这种情况。
Root.js
export const RootContext = React.createContext();
export default class Root extends React.Component {
render() {
return (
<View>
<RootContext.Provider value={'testContextValue'}>
<ExampleChildElement />
</RootContext.Provider>
</View>
);
}
}
ExampleChildElement.js
import { RootContext } from '../Root.js'
export class ExampleChildElement extends React.Component {
render() {
return (
<RootContext.Consumer>
{rootContext =>
<View />
}
</RootContext.Consumer>
);
}
}
我在这里做错了什么?