首页 > 解决方案 > 仅为特定屏幕启用标题

问题描述

好的,这是一个简单的场景。假设我StackNavigator有 100 个屏幕。其中 2 个需要标题,其中 98 个不需要标题。因此,为 98 屏幕编写相同的标题配置对我来说听起来不是一个好方法,而我所做的是,通过header : null像这样在全局配置中设置来禁用标题

const RootStack = createStackNavigator({

    ScreenOne: ScreenOne,
    ScreenTwo: ScreenTwo,
    ... : ... ,
    ScreenHundred : ScreenHundred
}, {
    initialRouteName: 'ScreenOne',
        navigationOptions: {
        header: null
    },
});

并尝试header从屏幕类中启用。

class ScreenOne extends React.Component {
  static navigationOptions = {
    title: 'ScreenOne',
  };

  /* render function, etc */
}

但这不起作用。我该如何解决这个问题?有没有像我要说的方法那样的内置模式enable header for 2 screens only, and disable it for remaining screens

编辑:

一种解决方案是创建一个新类class HeaderLessComponent extends Component,它将覆盖navigationPropswith header : null,并且所有 98 个屏幕都将扩展HeaderLessComponent.

标签: react-nativereact-navigation

解决方案


推荐阅读