从React-Native-Navigation v2中删除导航栏?

时间:2018-11-28 11:38:30

标签: reactjs react-native react-native-navigation-v2

如何在React-Nativa-Navigation V2中为特定屏幕禁用导航栏?

4 个答案:

答案 0 :(得分:1)

对于不显示顶部栏的特定组件,可以通过放置

来完成
topBar: {  visible: false }

options的{​​{1}}中

component

如果还需要在堆栈级别进行设置,以使堆栈中没有任何屏幕显示顶部栏,则可以通过设置

Navigation.setRoot({
      root: {
        stack: {
          id: "App",
          children: [
            {
              component: {
                name: "rci.Login",
                options: {
                  topBar: {
                    visible: false
                  }
                }
              }
            }
          ]
        }
      }
    });

在堆栈内部。整个代码看起来像

 options: {
    topBar: {
      visible: false
    }
  },

答案 1 :(得分:1)

您最好的选择是在组件内部设置静态选项:

export default class YourComponent extends Component {
  static get options() {
    return {
      topBar: {
        visible: false,
        animate: false
      }
    };
  }
}

请注意,您可以切换topBar可见性更改动画。

答案 2 :(得分:0)

如果您使用的是StackNavigator,则需要在给定的屏幕上将header设置为null

class HomeScreen extends React.Component {
  static navigationOptions = {
    header: null,
  };

  ...
}

export default createStackNavigator({
  Home: HomeScreen
});

答案 3 :(得分:0)

希望这会有所帮助。从@react-navigation/native 5.1.3开始的正确方法似乎是headerShown: false

<NavigationContainer>
  <Stack.Navigator initialRouteName="Login">
    <Stack.Screen
      name="Login"
      component={LoginScreen}
      options={{ title: "Login Screen", headerShown: false }}
    />
    {..other stuff..}
  </Stack.Navigator>
</NavigationContainer>