反应导航 tabBarVisible:false 不适用于 TabNavigator 内的 StackNavigator

新手上路,请多包涵

我完全不知道要实现如下所示的东西,这工作正常但无法隐藏 EditPage 和 PageTwo 的标签栏

  • 登录
  • 报名
  • 标签导航器(TabNavigator)
    • 第一个选项卡
    • 第二个选项卡(堆栈导航器)
      • 列表页
      • 编辑页面
    • 第三个选项卡(堆栈导航器)
      • 第一页
      • 第二页
    • 设置

下面是我的配置。

 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

谢谢

原文由 Javascript Hupp Technologies 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 463
2 个回答

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

  • 切换导航器
    • 登录
    • 报名
    • 堆栈导航器
      • 选项卡导航器
        • 第一个选项卡
        • 列表页
        • 设置
      • 编辑页面
      • 第二页

原文由 sanjar 发布,翻译遵循 CC BY-SA 4.0 许可协议

问题是您的屏幕(Rewards 和 AddRewards 在 Stack Navigator 内)

老的:

  Rewards: {
          screen: createStackNavigator({
            Rewards:{
              screen: Rewards,
              navigationOptions:{
                header:null
              }
            },
            AddReward:{
              screen: AddReward,
              navigationOptions:{
                header:null,
                tabBarVisible: false
              }
            }
          })
        }

使固定:

     Rewards: {
          screen: createStackNavigator({
            Rewards,
            AddReward,
          }),
          navigationOptions:{
            header:null,
            tabBarVisible: false
          }
        }

原文由 MarianIordache 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题