当前位置: 首页 > 知识库问答 >
问题:

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

顾曾笑
2023-03-14

当我试图实现React-导航中的导航器时,我遇到了一些奇怪的行为。

当你尝试简单的“hello world”时https://reactnavigation.org/docs/en/hello-react-navigation.html...

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,
  },
});

我得到这个错误:

不变违反:元素类型无效:预期为字符串(用于内置组件)或类/函数(用于复合组件),但得到了:对象。检查SceneView的渲染方法。

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

此常见修复(删除导入中的大括号)会出现新错误:

对象不是函数

对“对象不是函数”的常见修复将我带回我开始的地方(在导入中添加大括号)。

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

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

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

共有2个答案

施知
2023-03-14

我可能发现了你的问题。我想你是想跟着文件找错误的版本。我假设您使用的是React-导航的V1。

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

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

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

做记号

刘骏祥
2023-03-14

办理登机手续。json,如果您的react native具有正确的react版本。例如

"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",

作品

 类似资料:
  • 我的应用程序中有一个视图控制器,它在情节提要中拖动了一个导航栏。它在iOS 6中运行良好,但在iOS 7中看起来是这样的: 状态栏和导航栏不应相互碰撞。我在堆栈溢出上看到了很多这样的问题,但它们对我没有多大帮助。 有些问题说我应该使用这个“self.edgesForExtendedLayout=UIRectEdgeNone”;但它不起作用。有人说,我应该删除导航栏并将其嵌入导航控制器中,但由于我的

  • 我需要你的帮助。我迈出了android编程的第一步! SOS!!! 我创建了经典的导航抽屉,你可以通过点击汉堡图标或从左侧滑动来打开/关闭。我还创建了右侧菜单(就像在Facebook应用程序中一样),并使用了GitHub的这个库(https://GitHub.com/jfeinstein10/slidingmenu)。最后,我有冲突的抽屉导航菜单和右侧菜单。 当导航抽屉菜单打开时,你想通过从右向左

  • 问题内容: 当我尝试启动我的React Native应用程序时,我收到此消息。通常,这种格式可在其他多屏幕导航上使用,但在这种情况下不起作用。 这是错误: 这是我的应用格式: 问题答案: React Navigation 3.0进行了许多重大更改,包括根导航器所需的显式应用程序容器。 过去,任何导航器都可以充当应用程序顶层的导航容器,因为它们都包裹在“导航容器”中。导航容器(现在称为应用程序容器)

  • 我们已经为边栏项目的路由实现了一个新的逻辑,之前所有项目都处于同一级别,现在我们正在实现分层显示,页面可以组合到一个模块中,当用户扩展模块时,他将看到相关页面。 为此,我们的JSON结构也发生了变化,现在我们的路由逻辑实现如下- 上面的代码用于为没有子页面的页面提供路由。 以上代码用于包含子页面的模块的路由 下面的代码与问题无关 在进行这些更改后,我的应用程序有时会按预期工作,但有时会收到以下错误

  • 问题内容: 运行以下 xjc 命令会引发错误: 尽管我了解JAXB绑定以及XJC中的冲突是什么,但我不了解当前模式中的冲突在哪里。 我该如何解决? 谢谢, 皮埃尔 更新:这是错误的上下文: 问题答案: 我将引用网上JAXB上最官方的非官方指南。 当架构包含外观相似的元素/类型名称时,它们可能导致“两个声明在ObjectFactory类中引起冲突”错误。更准确地说,对于所有类型和许多元素中的每一个(

  • 问题内容: 我已经将一个现有的Java应用程序导入到我的工作区中。我看到,在应用程序中的不同包中存在具有相同名称的类。 例如,存在一个名为“ Status.java”的类,其中包含 当我尝试在一个类中同时使用它们时,例如如下所示 它开始在Eclipse中指出一个错误 该 进口com.bayer.frontlayer.dao.Status 碰撞与其他import语句 有没有解决这个问题而无需更改类的