首页 文章

仅使用一些导航器的不变违规(React-Navigation)

提问于
浏览
1

当我尝试从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

对象不是函数

And the common fix to "Object is not a function" leads me back to where I started (adding braces to the import).

我是React-Native的新手,不知道如何深入研究这个问题,任何帮助都表示赞赏!

----- Edit -----

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

2 回答

  • 3

    如果您的 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",
    

    作品 .

  • 0

    我可能找到了你的问题 . 我认为您正在尝试按照错误版本的文档进行操作 . 我假设你正在使用反应导航的V1 .

    您可以通过在项目根目录中的终端中运行“yarn list react-navigation”来查看当前安装的版本 .

    V1文档:https://v1.reactnavigation.org/docs/hello-react-navigation.html

    如果我使用上面链接中的示例,一切正常 . 也许你可以尝试一下?

    标记

相关问题