反应导航 tabBarVisible:false 不适用于 TabNavigator 内的 StackNavigator [英] React navigation tabBarVisible: false not working for StackNavigator inside TabNavigator

查看:30
本文介绍了反应导航 tabBarVisible:false 不适用于 TabNavigator 内的 StackNavigator的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对实现以下内容感到非常困惑,这工作正常,但无法隐藏 EditPage 和 PageTwo 的标签栏

I am totally confused to achieve something like below, this is working fine but can't hide tab bar for EditPage and PageTwo

  • 登录
  • 注册
  • TabNavigator(TabNavigator)
    • 第一个标签
    • SecondTab(StackNavigator)
      • 列表页面
      • 编辑页面
      • 第一页
      • 第二页

      以下是我的配置.

      import { createStackNavigator, createSwitchNavigator, createBottomTabNavigator } from 'react-navigation';
      //Other required imports here
      
      const SignedOut = createStackNavigator({
        Signup: { screen : Signup},
        Login: { screen : Login}
      });
      
      const SignedIn = createBottomTabNavigator({
          Dashboard: {
            screen: Dashboard
          },
          Rewards: {
            screen: createStackNavigator({
              Rewards:{
                screen: Rewards,
                navigationOptions:{
                  header:null
                }
              },
              AddReward:{
                screen: AddReward,
                navigationOptions:{
                  header:null,
                  tabBarVisible: false
                }
              }
            })
          },
          Activities: {
            screen: createStackNavigator({
              Rewards:{
                screen: Activities,
                navigationOptions:{
                  header:null
                }
              },
              NewActivity:{
                screen: NewActivity,
                navigationOptions:{
                  header:null,
                  tabBarVisible: false
                }
              }
            })
          },
          Settings: {
            screen: Settings
          }
      },{
        tabBarComponent: ({navigation}) => <FooterComponent navigation={navigation} />,
        tabBarPosition: 'bottom',
        animationEnabled: false,
        swipeEnabled: false
      });
      
      export const createRootNavigator = (signedIn) => {
          return createSwitchNavigator(
              {
                  SignedIn: {
                      screen: SignedIn
                  },
                  SignedOut: {
                      screen: SignedOut
                  }
              },
              {
                  initialRouteName: (signedIn) ? "SignedIn" :"SignedOut",
                  headerMode: 'none'
              }
          );
      };

      问题

      • 我无法隐藏 AddRewardNewActivity
      • 的标签栏
      • tabBarVisible: false 不适用于 TabNavigator 内的 StackNavigator
      • I can't hide tab bar for AddReward and NewActivity
      • tabBarVisible: false not working for StackNavigator inside TabNavigator

      谢谢

      推荐答案

      您可以将一个 StackNavigator 用于所有堆栈,并将 TabNavigator 设置为默认路由:

      You could use one StackNavigator with all your stacks, and set the TabNavigator as default route :

      • 切换导航器
        • 登录
        • 注册
        • StackNavigator
          • 标签导航器
            • 第一个标签
            • 列表页面
            • 设置

            这篇关于反应导航 tabBarVisible:false 不适用于 TabNavigator 内的 StackNavigator的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆