我的屏幕上没有 header,但我只想在一个屏幕上显示 header

I don't have headers on my screens but i want to have header only on one screen

我使用 reactnavigation 进行导航。我的屏幕上没有 header,但我只想在一个屏幕上显示 header(尤其是后退按钮)。 这是我的根导航器:

...
class RootNavigation extends Component {
  props: Props;

  render() {
    const { isProfileSelect } = this.props;
    const initialRouteName = currentRoute(isProfileSelect);

    const RootStackNav = StackNavigator(
      {
        AppHome: { screen: TabBarNavigator },
        SwitchProfile: { screen: SwitchProfileScreen },
        Pin: { screen: PinScreen },
      },
      {
        initialRouteName,
        headerMode: 'none',
      },
    );

    return <RootStackNav />;
  }
}
...

headerMode: 'none', 这确实意味着我没有任何 header 导航器它适用于屏幕 AppHomeSwitchProfile 但不适用于 Pin我需要 header 上的后退按钮。因为我必须继续 SwitchScreen 并且我可以在 Pin 屏幕和从 Pin 屏幕继续我有时需要返回 SwitchScreen 而且我没有后退按钮 IOS。我只需要在 pin 屏幕上设置 header。

这是 navigationOptions 针屏:

...
  static navigationOptions = {
    title: I18n.t('screens.pinScreen.navigationOptions.title'),
  };
...

但更改没有任何效果

你能帮我只在 Pin 屏幕上添加 header 吗? 谢谢

更新: 解决方案

const RootStackNav = StackNavigator(
  {
    AppHome: {
      screen: TabBarNavigator,
      navigationOptions: {
        title: 'Header title',
        headerMode: 'screen',
        header: null,
      },
     },
    SwitchProfile: {
      screen: SwitchProfileScreen,
      navigationOptions: {
        title: 'Header title',
        headerMode: 'screen',
        header: null,
      },
    },
    Pin: {
      screen: PinScreen,
      navigationOptions: {
        title: 'Header title',
        headerMode: 'screen',
        // header: null,
      },
    },
  },
  {
    initialRouteName,
    // headerMode: 'none',
  },
);

我的情况与你的情况相反... 我想在一个屏幕上禁用 header,因此我在该特定屏幕中添加了以下代码。

export default class NoHeaderView extends Component {
static navigationOptions = { header: null }
...
//your constructor, render and other stuff
...
}//

如果有效请告诉我。