在 React Native 导航底部选项卡中从选项卡栏按下的堆栈中删除某个屏幕

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

看一下这个导航结构:

标签栏:
-StackNavigatorA:
--屏幕A1
--屏幕A2
--屏幕A3
--A4屏幕
-StackNavigatorB:
--屏幕B1

将选项卡从 StackA 更改为 StackB 并返回 StackA 后,我想保留除 ScreenA4 之外的所有屏幕。

因此,如果用户在 ScreenA3 上,将选项卡切换到 StackB,然后返回 StackA,我想保持 ScreenA3 打开,与屏幕 A2 相同

但是如果用户在 ScreenA4 上,将选项卡切换到 StackB,然后返回 StackA,我想删除 ScreenA4 并显示 ScreenA3

抱歉,如果我的解释令人困惑

我尝试使用全局 NavigationRef 及其状态,但是我找不到方法来获取选项卡栏上最后一个活动路线的名称

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

查看BottomTabsNavigator的事件 https://reactnavigation.org/docs/bottom-tab-navigator#events

  1. 您需要订阅 tabPress 事件,现在您可以捕获用户正在导航的选项卡。
  2. 您需要检查导航状态,https://reactnavigation.org/docs/navigation-state/
  3. 如果您的 StackA 导航状态最后有 Stack4 路线,您需要执行 navigation.reset 并按照您想要的方式构建堆栈https://reactnavigation.org/docs/navigation-actions/#reset,否则我假设您不需要执行任何操作,但这是一组可以帮助您构建功能的工具。
© www.soinside.com 2019 - 2024. All rights reserved.