如何在React Native(react-native-router-flux)中隐藏特定场景的标签栏?

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

我正在尝试隐藏应用程序上特定页面的整个选项卡栏。 我也尝试将其隐藏在路由上和容器内。 但是,这没有用。我可以在这两种情况下隐藏标题导航栏,但它不起作用 对于选项卡栏。 以下是我的尝试代码:

     <Scene
        key="showBarcodeScanner"
        hideNavBar
        hideTabBar
        {...DefaultProps.navbarProps}
        iosStatusbar="light-content"
        component={BarcodeScan}
      />

以下方法也不起作用

  static navigationOptions = ({ navigation }) => ({
    header: null,
    tabBarVisible: false
  });

我检查了源代码,有一个隐藏选项卡的逻辑(虽然没有深入)。

if (navigationParams.hideTabBar != null) {
  if (navigationParams.hideTabBar) {
    res.tabBarVisible = false;
  }
} else if (hideTabBar) {
  res.tabBarVisible = false;
}

我错过了什么吗?还有其他方法可以隐藏特定页面的标签栏吗?

react-native expo react-native-router-flux
3个回答
0
投票

请参阅 React Native Router 的 Readme

Actions.refresh({key: 'showBarcodeScanner', hideNavBar: true, hideTabBar: true});

希望有帮助,你可以输入任何你想刷新的参数。


0
投票

经过一番研究,我找到了解决方案。

我想要隐藏的场景位于路线中选项卡下的堆栈内。 如果不重新调整导航器,下面的代码将无法根据官方源代码工作: 反应导航

tabBarVisible: false

我刚刚在选项卡上方创建了一个新堆栈,问题就解决了。


0
投票

对于那些使用reactnavite expo的人来说,这可能很有用

 <Tabs>
      <Tabs.Screen
        name="index"
        options={{
          href: null,
        }}
      />
    </Tabs>
© www.soinside.com 2019 - 2024. All rights reserved.