如何在React Navigation中全局返回栈之间的内容?

问题描述 投票:0回答:1

我正在使用react导航("@react-navigation/native": "^5.1.3"),我有以下设置。

BottomNavigation
    -stack1
    -stack2

它看起来像 goBack() 是本地堆栈。这意味着如果我从stack1中的一个页面导航到stack2中的一个页面,我无法回到我上来的那个页面。

对我来说,没有用的解决方案(或者说是黑客)。

  • 传递源屏幕作为param,然后导航。这不是一个真正的返回按钮,而且和android的返回按钮玩的不好。
  • 把所有页面都放在底部导航中。底部导航似乎没有动画,所以我无法实现正确的过渡。
  • 把所有的页面放在堆栈导航中。在这种情况下,我失去了固定的底部导航。我可以把它添加到每个页面,但是当过渡时,它会随着旧屏幕消失,而随着新屏幕再次出现,这是不可取的。

所以我想知道我是否遗漏了一些重要的东西,如 globalBack() 是我忽略了的?

同时,我也在寻找解决这个问题的方法。

react-native react-navigation react-navigation-bottom-tab
1个回答
0
投票

当然,如果你有底部标签页,每个标签页都有自己的堆栈导航器,调用 navigation.goBack() 将从堆栈导航器内的一个屏幕返回到同一个堆栈导航器内的上一个屏幕。这就是几乎所有应用中导航的工作原理。按后退键或向后滑动并不会为你改变标签,标签更像是单独的小程序本身。如果你想专门从一个标签页跳到另一个标签页,而不是回到堆栈中,使用 navigation.dispatch(TabActions.jumpTo('Profile')). 如果在tab#1中按下某些东西使你转到tab#2,那么这个屏幕很可能也属于tab#1。

又如 backBehaviorTab.Navigator它可能正在做你想要的,这取决于你到底想要什么。https:/reactnavigation.orgdocsbottom-tab-navigator#backbehavior。

© www.soinside.com 2019 - 2024. All rights reserved.