我有一个StackNavigation,并且想要一个默认的Header
(组件标题),并且想要那个"深页"显示为React Navigation生成的默认标题。
在我的索引页面**Index**
中,只需要Header组件(第一个标题)...但显示另一个空白标题:
在我的"深度页面" **Teste**
只想让RNav自动生成标题和后退按钮(第二个标题)......但第一个标题显示出来。
这是我的导航配置:
const RootNavigator = StackNavigator({
Welcome: {screen: Welcome},
User: {
screen: TabNavigator({
Clientes: {
screen: StackNavigator({
Index: {screen: Clientes},
Teste: {
screen: Teste,
header: undefined
}
}, {
header: null,
navigationOptions: {
tabBarIcon: () => (
<Icon name="list-alt" size={22} color="#ffffff" />
)
}
})
},
Opcoes: { screen: Opcoes }
}, {
tabBarPosition: 'bottom',
tabBarOptions: {
showLabel: false,
activeTintColor: '#fff',
showIcon: true,
inactiveTintColor: '#ccc',
indicatorStyle: {
backgroundColor: '#ccc'
},
style: {
backgroundColor: '#536878'
}
}
})
},
}, {
initialRouteName: 'User',
navigationOptions: {
header: props => <Header {...props} />
}
});
export default RootNavigator;
答案 0 :(得分:1)
每个StackNavigator都会带一个标题,第一个标题来自RootNavigator = StackNavigator({
,第一个标题来自Clientes: { screen: StackNavigator({
。
首先,header: null
中的接缝Clientes: { screen: StackNavigator({
没有任何效果。您应该尝试使用headerMode: 'none'
,这将从Index
删除空白标题,但也会从Teste
删除标题和后退按钮,这不能解决您的所有问题。
所以我会建议不同的导航器结构:
RootNavigator(StackNavigator)
- Welcome
- Index
- Teste
- User(TabNavigator)
- Clientes
- Opcoes
接下来你要做的是为组件内部的Teste
设置不同的标题(默认标题,带后退按钮),如下所示:
import { Header } from 'react-navigation';
Teste.navigationOptions = ({ navigation, screenProps }) => ({
return {
header: <Header {...screenProps} {...navigation} />
}
});
您甚至可以制作自己的标题组件并在Teste.navigationOptions中使用它。