【问题标题】:Hidding custom tabbar in nested stack navigation在嵌套堆栈导航中隐藏自定义标签栏
【发布时间】:2020-10-07 17:51:36
【问题描述】:

我有一个类似于下面的标签栏。在每个选项卡中,我都有一个嵌套的堆栈导航器。 每当堆栈不在其初始路线上时,我想隐藏标签栏。在文档中,声明应该将堆栈放在初始堆栈导航器中。

https://reactnavigation.org/docs/hiding-tabbar-in-screens/

但是,这没有任何意义,因为我有我的注册和客户未登录的所有路由,我认为将整个应用程序放在一个堆栈导航器中是违反直觉的。此外,它首先降低了使用标签导航的目的。

我也尝试过 tabBarVisible 属性并有条件地更改它。但是,这给我带来了一些问题。 首先,它似乎不适用于 mu 自定义 tabBar。此外,它为我提供了每个渲染的每个选项卡的状态。因此,它会导致一些不需要的行为。最后,文档中不建议这样做。

<Tab.Navigator
 tabBar={props => (
  <TabBar
     onPress={tabIndex => changeTab(tabIndex, props)}
     display={false}
     values={[
       { title: "Balance", icon: 'view-dashboard'},
       { title: "Faktura", icon: 'file-pdf'},
       { title: "Rabatter", icon: 'gift'},
       { title: "Profil", icon: 'account-details'},
       { title: "Mere", icon: 'dots-horizontal' }
     ]}/>
   )}>
  <Tab.Screen
  name="Balance"
  component={BalanceStackNavigator}
  />
  <Tab.Screen
  name="Invoice"
  component={InvoiceStackNavigator}
  />
  <Tab.Screen
  name="BlueBenefit"
  component={BlueBenefitStackNavigator}
  />
  <Tab.Screen
  name="User"
  component={UserStackNavigator}
  />
  <Tab.Screen
  name="CrossSale"
  component={CrossSaleStackNavigator}
  />
</Tab.Navigator>

所以基本上我的问题是,我如何以最佳方式实现不在初始路线上时隐藏选项卡的行为?

【问题讨论】:

    标签: react-native expo react-native-navigation


    【解决方案1】:

    我最终使用了文档推荐的方法,即将我的所有屏幕放置在我的应用堆栈中,而不是单独的嵌套堆栈中。

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2017-11-25
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      相关资源
      最近更新 更多