如何使用react-navigation

时间:2017-07-15 00:46:58

标签: react-native react-navigation tabnavigator

enter image description here

我有一个登录屏幕,当用户登录时,他们被带到类似上面显示的屏幕。

在这个屏幕中,我有一个tabNavigator包含5个屏幕的标签,类似于上图所示。它还有一个带有搜索栏的标题。此标题仅应显示在5个标签中的4个标签中,并且我需要在第5个标签中显示不同的标题。

有办法做到这一点吗?我知道我可以在5个标签中的4个中添加一个视图来渲染相同的标题,并在第5个屏幕中添加一个视图来呈现不同的标题,但我想知道是否有一种方法可以做到这一点而无需渲染同时在所有4个标签中查看相同的视图。

P.S它应该适用于iOS和Android

1 个答案:

答案 0 :(得分:4)

您可以按header配置TabNavigator navigationOptions

const TabNav = TabNavigator({
  First: { screen: FirstPage },
  Second: { screen: SecondPage },
  Third: { screen: ThirdPage },
  Fourth: { screen: FourthPage },
  Fifth: { screen: FifthPage }
}, {
  navigationOptions: {
    header: <SearchHeader />
  }
})

然后在FifthPage中自定义navigationOptions

class FifthPage extends Component {
  static navigationOptions = {
    header: <FifthPageHeader />
  }
}

我刚刚在Expo Snack上创建了一个演示:https://snack.expo.io/rJDGpmPHZ,第5个屏幕有一个蓝色标题,其他屏幕有一个红色标题。

TabNavigator的{​​{1}}文档中,它没有列出header选项,我认为它会传递给StackNavigator