React native 仅与某些导航器发生不变冲突(反应导航)

React native 仅与某些导航器发生不变冲突(反应导航),react-native,react-navigation,React Native,React Navigation,在尝试从React Navigation实现导航器时,我遇到了一些奇怪的行为 当你尝试简单的“hello world”时 从“React”导入React; 从“react native”导入{View,Text}; 从“反应导航”导入{createStackNavigator}; 类主屏幕扩展了React.Component{ render(){ 返回( 主屏幕 ); } } 导出默认createStackNavigator({ 主页:{ 屏幕:主屏幕, }, }); 我得到这个错误: 不变冲

在尝试从React Navigation实现导航器时,我遇到了一些奇怪的行为

当你尝试简单的“hello world”时

从“React”导入React;
从“react native”导入{View,Text};
从“反应导航”导入{createStackNavigator};
类主屏幕扩展了React.Component{
render(){
返回(
主屏幕
);
}
}
导出默认createStackNavigator({
主页:{
屏幕:主屏幕,
},
});
我得到这个错误:

不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。 检查“SceneView”的渲染方法

奇怪的是,当使用StackNavigator(和TabNavigator)时,会给我一个不变的冲突,而使用DrumerNavigator则不会

:

对象不是函数

我是个新手,不知道如何更深入地研究这个问题,任何帮助都将不胜感激

-----编辑-----


我已将react navigation的版本降级为v1.5.5,并且原始的StackNavigator组件可以正常工作,因此可能是v2.0.1和我的环境存在兼容性问题。

我可能已经发现了您的问题。我想你是在试图按照文档中的错误版本进行操作。我假设您使用的是React导航的V1

通过在项目根目录中的终端中运行“列表导航”,可以查看当前安装的版本

V1文档:

如果我使用上面链接的例子,一切都很好。也许你可以试试


如果您的
react native
具有正确的
react
版本,请标记签入package.json。比如说,

"react": "16.4.0",
"react-native": "^0.53",
"react-navigation": "^2.0.4",
不适合我,但是

"react": "16.2.0",
"react-native": "^0.53",
"react-navigation": "^2.0.4",

有效。

你好,马克,显示我有-反应-navigation@2.0.1尝试使用旧的“StackNavigator”会给我一个警告,说明它已被弃用,并改为使用“createStackNavigator”。不确定为什么没有更多的升级。解决了我的问题这是我发现的最奇怪的错误,浪费了我3个小时的时间。我的
包中有
“react”:“^16.2.0”
。json
,但意识到它正在解析为
16.6.3
,并导致此错误。回滚到
“16.2.0”
为我修复了此错误。
"react": "16.2.0",
"react-native": "^0.53",
"react-navigation": "^2.0.4",