问题标签 [react-navigation-v5]

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 回答
9004 浏览

react-native - React Navigation v5 中的初始路由参数?

React Navigation v3 具有一个initialRouteParams属性,用于将初始值传递给this.navigation.props。有没有办法在 React Navigation v5 中设置要通过route.params访问的初始路由参数?

0 投票
1 回答
2785 浏览

react-native - 如何在 React Navigation 5 中始终保持底部标签

我一直在努力弄清楚如何始终保留底部标签。 应用截图

抽屉里有 3 件物品:

  1. 标签
  2. 屏幕 5
  3. 屏幕 6

抽屉屏幕截图

单击屏幕 5 或屏幕 6 时,我想保留底部选项卡。我该如何做到这一点?请帮忙。

屏幕 5 屏幕截图

0 投票
1 回答
6546 浏览

react-native - React-Navigation v5 - 堆栈导航器之间的透明度

嘿,我在使用多个Stack.Navigator时遇到了透明度问题。

我创建了 2 个Stack.Navigators -> 一个用于Screens,一个用于Popups。问题是,我的弹出窗口有透明背景,在这种情况下,我需要在背景中显示屏幕。它在 react.navigation v4 中工作,现在在 v5 中我找不到任何解决方案来解决这个问题。

小吃 https://snack.expo.io/@m.jachym/react-navigation-stacks-transparency

导航结构图

*有两个Stack.Navigator,因为用于Popups的 Stack.Navigator具有不同且复杂得多的screenOptions。此外,在有关嵌套导航器的文档中,有一条建议将一个Stack.Navigator放入另一个 Stack.Navigator 中。在这种情况下,问题是,当您设置父Stack.Navigator headerMode="screen" 和子Stack.Navigator headerMode="none" 时,子 headerMode 是从父继承的。其他属性也存在同样的问题 - 这就是我的导航结构保持原样的原因。

我知道我做错了什么,或者那是新版本的 react-navigation 的问题,我应该写信给 react-navigation 团队?*

0 投票
1 回答
92 浏览

reactjs - 从 React Navigation v4 升级到 v5 时获取默认样式

我目前正在使用 React Navigation v4 并迁移到 v5。我正在使用官方文档进行升级,但不幸的是,我遇到了一个阻止程序。

在 V4 中,我可以执行以下操作:

但在 V5 中,我似乎无法访问navigationOptions参数,因此无法获取navigationOptions.headerStyle.

我如何在 React Navigation V5 中做到这一点,因为它没有在其他任何地方记录?

0 投票
1 回答
7375 浏览

react-native - React Navigation 5 将参数传递到嵌套导航器内的屏幕

我们正在将 React Navigation 4 中的应用程序迁移到 React Navigation 5。该项目有一个 BottomTabNavigator,它的其中一条路线有一个嵌套的 TopTabNavigator 和三个选项卡。按下时,BottomTabNavigator 中的选项卡之一导航到排序屏幕,您可以在其中选择排序参数以进行排序,然后导航到添加所选排序参数的“待定”路由,该路由应到达 TopTabNavigator 内的三个列表屏幕之一. 目前,我在这些屏幕中接收到的 route.params 为 null,我认为这是因为中间有另一个导航器(topTabNavigator)。

底部标签导航器

排序屏幕选项卡:

createTopTabsNavigator:

非常感谢您解决这个问题

0 投票
3 回答
1700 浏览

react-native - React-navigation 5x 使用 Stack.Screen screenProps

我想screenProps在 React-navigation中传递一些东西v5.x.x。我是 react-native 的新手之一。谁能帮我?

0 投票
1 回答
186 浏览

react-native - 使用 React Navigation 版本 5 时如何传递自定义道具?

我已在我的应用程序中升级到React Navigation v5。我在我的应用程序中使用 watermelondb。在使用ReactNavigationv4时,我曾经通过如下方式传递数据库道具

但是在 v5 中做一些事情

抛出一个错误说

在此处输入图像描述

有谁知道如何为 v5 传递道具?

0 投票
2 回答
278 浏览

react-navigation - 如果用户单击android后退按钮,如何不返回上一个屏幕

非常感谢您提前。在标准状态下,堆栈浏览器从一个导航到 A 到页面 B,并观看或投票 Android 的返回时,它会在 A 的情况下返回到前一页面。代码是否正在运行以及发生了什么,但我是想知道如何禁用此返回,因为它发生在切换导航器中,因为它在导航 v5 中不再可用。src\routes.js

src\services\navigation.js

环境

包.json

提前感谢您的答案。

0 投票
5 回答
10686 浏览

react-native - 在 React Navigation 5 中传递参数

我正在尝试在选项卡导航器之间传递一些参数。下面是我的程序的结构。粗体是路线

应用程序(选项卡导航器):{(堆栈)和过滤器(屏幕)}

Main (Stack Navigator): { Home (screen) & MediaDetails (screen) }

我在屏幕上有一个与具有onPress()功能的过滤器关联的按钮。我正在传递一些参数(但为了这个问题,我们只考虑参数

现在在与Home关联的屏幕中,我正在读取状态内的参数,如下所示:

App.js中,我将to的初始值设置为 '2020',如下所示:

初始值确实设置为2020。我按下按钮。假设我设置1900。就在this.props.navigation.navigate执行之前,我console.log(this.state.to)的值,它确实更新为1900。但是,随着屏幕变为Home,该值恢复为2020(通过 console.log 观察)

有人能指出这种怪异行为的原因吗?我一直在尝试调试这个几个小时,但没有运气。React Navigation 5 也很新,所以在网上找不到类似的东西。任何帮助将不胜感激。感谢您一路阅读。

编辑:问题已解决,完整代码已删除!

0 投票
2 回答
588 浏览

reactjs - 如何在 react-navigation 5 中从当前屏幕更新以前的屏幕参数

react-navigation4 中,我将 afunction作为参数传递给导航屏幕。但是在 react-navigation 5 中,这有一个不推荐的警告。那么现在如何从当前屏幕更新前一个屏幕的参数?

例子:

  1. 我在一个聊天组。
  2. 我单击组图像。
  3. 在新屏幕中,我更新组名。
  4. 现在我通过单击返回hardware back button
  5. 现在组名应该是新的更新名称。

那么这怎么可能?

我知道我可以使用navigation.navigate()参数返回,但在大多数情况下,用户使用单击硬件返回按钮而不是单击返回箭头。