对于嵌套导航,意外返回反应导航



我在react-native 0.66.4react-navigation 4.4.4中面临导航问题。我有一个标签导航设置,看起来像这样。

  • 选项卡导航回家的
      • 屏幕(开始)
      • 屏幕B
    • 贸易
      • 屏幕1(首字母)
      • 屏幕2
      • 屏幕3

画面1通向2或3

我试图从主页选项卡(屏幕A)导航到贸易选项卡(屏幕2和屏幕3)使用单独的按钮,我能够通过做navigation.navigate('Trade', { screen: 'Screen2', params:{...} })navigation.navigate('Trade', { screen: 'Screen3', params:{...} })来实现这一点

我现在面临的问题是

  1. 当我导航到贸易(屏幕2),并使用后退按钮,它导航到主(屏幕)

  2. 导航到贸易(屏幕3),然后使用后退按钮去Trade(Screen3) =>贸易(屏幕2)=>回家(screen),Trade(Screen2) =>贸易(屏幕3)=>回家(screen)如果我先访问了屏幕3,为了达到这个目的,我必须点击返回两次。

  3. 最后,如果我在点击之前访问了屏幕2或3贸易选项卡,它显示的屏幕,而不是屏幕1(初始)。这不是我想要的那种行为。

我如何做到这一点,无论何时我从贸易(屏幕2或屏幕3)返回,它导航到贸易(屏幕1),并在访问这些屏幕(2和3)中的任何一个后单击贸易标签导航到屏幕1(初始)?

我怎么能去呢

当使用嵌套的堆栈从一个选项卡导航到另一个选项卡时,您需要传递initial: false参数以防止将第一页视为初始页。

navigation.navigate('TradeStack', { screen: 'Screen2', initial: false, params: { param_1: 'foo' } })

然后当你在屏幕2上按下goBack() -它将向上移动到屏幕1(初始)

,并在访问这些屏幕后单击Trade选项卡(2和3)导航到屏幕1(初始)?

要实现这一点,我认为你可以使用initialRouteName在官方文档中指定的prop(检查StackNavigatorConfig))。请试一下,让我知道效果如何。

https://reactnavigation.org/docs/4.x/stack-navigator

我怎样才能做到这一点,无论何时我从贸易(屏幕)返回2或屏幕3),它导航到Trade(屏幕1)

你能给这些屏幕做个测试吗?创建按钮和onPress

navigation.goBack()

如果一切正常,请让我知道。我没有带我的开发环境,所以我写这只是作为参考。

最新更新