问题标签 [stack-navigator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6680 浏览

javascript - undefined 不是对象(评估 this.props.navigation.navigate)

我正在尝试第一次学习本机反应。我试图引入一个 stacknavigator 但该行const {navigate} = this.props.navigation;导致错误:

undefined 不是对象(评估“this.props.navigation.navigate”)

这是我的代码:

我做错了什么,我该如何解决这个问题?

我还应该提到 props 在渲染函数和构造函数中是空的。

这是我的 package.json 以防万一

这是我的 index.android.js

0 投票
0 回答
146 浏览

react-native - 在组件内嵌套 StackNavigator

我在我的应用程序开发中使用反应导航(第一次..)。我的建议是将主要且唯一的 StackNavigator 嵌套在 index.js 中编写的组件内,这样我就可以只编写一次抽屉和状态栏代码,并且导航只能在可用空间中工作。我已经尝试过本指南,但我不明白如何应用该段落......

Home 组件具有页面的具体内容。这是我感兴趣的索引代码:

现在它只显示主页内容...

0 投票
1 回答
2430 浏览

react-native - React Native - 选项卡导航器内的抽屉导航器内的堆栈导航器

我在混合不同的导航器时遇到了一些麻烦。这是我的导航器文件:

问题是当我打开抽屉导航器时:

  • 第一个选项卡从“Drawers”容器(在 Screen1 中设置)中丢失了 tabBarIcon 和 tabBarLabel 配置。图标消失,标签变为“Drawers”(TabNavigator 声明中的 Name)而不是原来的 tabBarLabel 中设置的值
  • Stack Navigator 的 Header 在 Drawer 上方仍然可见,并且失去了我在 Screen1 navigationOptions 中设置的样式。(对于这个,我最终可以删除 Stack Navigator 并创建自己的标题,使用 Stack Navigator 更快)

这是两个不同状态的图像(抽屉关闭/打开):

抽屉关闭

抽屉打开

0 投票
6 回答
36689 浏览

javascript - React 本机清除 Stack Navigator 堆栈

我有几个屏幕可以一一浏览。屏幕1->屏幕2-屏幕3->屏幕4-首页

我想要的是当我回家时,应该清除以前的导航历史记录,并且后退按钮不应该转到最后一个导航屏幕,即屏幕 4。目前,当我在主屏幕上按下后退按钮时,它会带我回到堆栈中的最后一条路线是 screen4。我使用了下面的代码。它给了我错误,没有定义路由或关键主页。我已经在 Screens 类中定义了它。任何帮助,将不胜感激。

0 投票
1 回答
877 浏览

react-native - StackNavigator 不能嵌套多个级别?

我正在尝试学习如何将 stacknavigator 用于我的 react-native 应用程序。但是,一旦我在页面层次结构中处于第 2 级,系统就会不断崩溃,并且我收到以下消息:

更新由 RTCView 管理的视图的属性“accessibilityLabel”时出错

我的应用程序所做的只是显示一个单词,即 Region。如果单击区域,您将看到“通用”一词。当您按“General”一词时,您应该会看到一个空白屏幕,但相反,我收到了上面提到的错误和崩溃。

这是我的简单项目的代码:

index.android.js

组件/Home.js

组件/Regions.js

组件/兼容性.js

我究竟做错了什么?我只想看到空的兼容性屏幕,并摆脱这种崩溃。

0 投票
1 回答
779 浏览

react-native - 具有多个屏幕的 StackNavigator 的 React Native 示例

我似乎找不到使用一个或多个堆栈导航器来钻取多个屏幕的 react-native 应用程序的示例。我看到的教程只从一个主页转到一个子页面。

我想看一个关于如何从主页面到子页面再到大子页面的代码示例。

任何人都可以显示执行此操作的示例代码吗?

我尝试过一次,但在这里遇到了这个问题:

StackNavigator 不能嵌套多个级别?

0 投票
1 回答
13394 浏览

react-native - navigationOptions 在 react-native 中具有哪些属性?

这里提到了此页面中的属性 navigationOptions :

https://facebook.github.io/react-native/docs/navigation.html

我似乎找不到 navigationOptions 应该采用的完整属性列表?我从哪里得到这些信息?

0 投票
2 回答
112 浏览

react-native - 触发“注册”时会实例化两条路由

我有一个带有注册和登录流程的应用程序。当与 Redux 一起使用时,我遇到了嵌套堆栈导航器的问题。

React-导航结构

  • RootNavigator(堆栈导航器)
    • 注册(堆栈导航器)
    • 登录(堆栈导航器)

应用程序设置

  • 反应:16.0.0-alpha.6,
  • 反应原生:0.44.2,
  • 反应导航:^1.0.0-beta.11,
  • 反应还原:^5.0.6,

我的问题是,当从“登陆”ReactNavigation 触发“注册”(或“登录”)时,为嵌套(内部)堆栈导航器实例化两个初始屏幕。请参阅下面的屏幕截图。

这是着陆状态(正确) 在此处输入图像描述

但是当按下“注册”时,就会发生这种情况。 在此处输入图像描述

我最终得到了两条“注册”路线(路线名称称为“PersonalRego”)。如屏幕截图所示,'Step1' 是重复的,因为我期望在 routes 数组中只有一个 'Step1' 实例。但是这两个“Step1”的键是不同的。一个以“Init-”开头,另一个没有。

因此,向后导航(按顶部的“关闭”按钮)不会按预期取消注册。而是再次显示注册的“Step1”。

除了这个问题,反应导航的一切对我来说似乎都很好。在 ReactNative + ReactNavigation + Redux 应用程序中配置嵌套的 StackNavigators 时,我需要做些什么特别的事情吗?

我对此有点困惑。欢迎任何意见。

Ps : StackNavigator 代码(只有一层深嵌套的 StackNavigator)

.

.

0 投票
1 回答
1565 浏览

react-native - 处理点击操作栏的后退按钮反应原生

我在我的项目中使用堆栈导航器,单击操作栏后退按钮将我带到上一个屏幕,但我想在单击后退按钮时将其带到其他屏幕。如果我从屏幕 1 导航到屏幕 2,然后按后退按钮将转到屏幕 1,但我需要将它带到屏幕 3。任何帮助,将不胜感激。

我正在处理这样的硬件后退按钮按下。我想对导航返回按钮做同样的事情

0 投票
1 回答
1309 浏览

react-native - React-Navigation 抽屉和静态选项卡导航

我正在从 react navigator 切换到 react-navigation,我实际上对这种方法很好,但在一个问题上苦苦挣扎。

我想使用抽屉导航和底部对齐的选项卡导航。这部分按预期工作 - 这里没有问题。

我希望使用 3 个按钮修复选项卡式导航,这些按钮将在整个应用程序中具有相同的操作。(例如仪表板/搜索/收藏夹)

从仪表板,您可以更深入地导航一个级别。正如我现在所做的那样,选项卡的标签以前“仪表板”更改为导航到项目的名称。

为了澄清,我在 Dashboard-Screen-Tab 中添加了一个堆栈导航,以便用户可以浏览这些页面。

在标签的堆栈中导航时,如何防止标签的标签和操作发生变化?基本上我想在每个屏幕上都有一个固定的标签导航。

我应该创建一个固定的视图组件来实现吗?

这是我的设置:App.js

机器导航器