如何在react native(stackNavigator)中从所有屏幕中删除标题

时间:2019-09-09 14:21:19

标签: react-native

我无法从所有屏幕中删除标题,我在下面尝试了此设置,但标题仍未删除。是不是我将NavigationOptions设置错误?

import React, {Component} from 'react';
import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';

import Home from './telas/Home'
import Login from './telas/Login'
import Cadastro from './telas/Cadastro'


const stackNavigator = createStackNavigator({
  Home:{
    screen:Home,
  },
  Login:{
    screen:Login
  },
  Cadastro:{
    screen:Cadastro
  },
},
{
  navigationOptions:{
    header:null
  }
})

const AppContainer = createAppContainer(stackNavigator);

export default AppContainer;

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以使用headermode

headerMode -指定应如何呈现标题:

  • float-渲染停留在顶部并进行动画处理的单个标题 随着屏幕的改变。这是iOS上的常见模式。
  • screen-每个屏幕都有一个附加的标题和标题 与屏幕一起淡入和淡出。这是常见的模式 在Android上。
  • none-将不显示标题。

Exmaple

const ModalNavigator = createStackNavigator(
  {
    Main: { screen: Main },
    Login: { screen: Login },
  },
  {
    headerMode: 'none',
    mode: 'modal',
    defaultNavigationOptions: {
      gesturesEnabled: false,
    }
}
)

用法


const stackNavigator = createStackNavigator({
  Home:{
    screen:Home,
  },
  Login:{
    screen:Login
  },
  Cadastro:{
    screen:Cadastro
  },
},
{
 headerMode: 'none'
})

答案 1 :(得分:1)

通过defaultNavigationOptions而不是navigationOptions

defaultNavigationOptions: {
    header: null
}

答案 2 :(得分:0)

我们需要在createStackNavigator中指定headerMode。

尝试使用此

const stackNavigator = createStackNavigator({
  Home:{
    screen:Home,
  },
  Login:{
    screen:Login
  },
  Cadastro:{
    screen:Cadastro
  },
},
{
  headerMode: 'none'
})