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

时间:2019-10-10 06:17:45

标签: react-native expo react-native-router-flux

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

     <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;
}

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

2 个答案:

答案 0 :(得分:0)

请参见React Native Router的Readme

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

希望有帮助,您可以放置​​要刷新的任何参数。

答案 1 :(得分:0)

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

我想隐藏的场景位于堆栈中,该堆栈位于路线中选项卡下。 根据官方消息,如果没有改组导航器,以下代码将无法正常工作: React Navigation

tabBarVisible: false

我刚刚在Tabs上方创建了一个新Stack,问题已解决。