当我尝试从React-Navigation实现Navigators时,我遇到了一些奇怪的行为 .
从https://reactnavigation.org/docs/en/hello-react-navigation.html尝试简单的"hello world"时......
import React from 'react';
import { View, Text } from 'react-native';
import { createStackNavigator } from 'react-navigation';
class HomeScreen extends React.Component {
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
</View>
);
}
}
export default createStackNavigator({
Home: {
screen: HomeScreen,
},
});
我收到此错误:
不变违规:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object . 检查'SceneView'的render方法 .
奇怪的是,当使用StackNavigator(和TabNavigator)给我不变的违规时,使用DrawerNavigator不会!
This common fix (removing the braces in the import) gives a new error:
对象不是函数
我是React-Native的新手,不知道如何深入研究这个问题,任何帮助都表示赞赏!
----- Edit -----
我已将我的react-navigation版本降级到v1.5.5并且原始StackNavigator组件正常工作,因此可能是v2.0.1和我的环境的兼容性问题 .
2 回答
如果您的
react-native
版本具有正确的react
版本,请检入package.json . 例如,对我不起作用,但是
作品 .
我可能找到了你的问题 . 我认为您正在尝试按照错误版本的文档进行操作 . 我假设你正在使用反应导航的V1 .
您可以通过在项目根目录中的终端中运行“yarn list react-navigation”来查看当前安装的版本 .
V1文档:https://v1.reactnavigation.org/docs/hello-react-navigation.html
如果我使用上面链接中的示例,一切正常 . 也许你可以尝试一下?
标记