React-Navigation:无法隐藏标头嵌套导航器
我使用官方react-navigation来处理我的导航。我有一个主要的TabNavigator的与两个选项卡(称为HitchhikingMapNavigator
及以下SettingsNavigator
)整个应用程序,并且每个标签都有一个嵌套StackNavigator:React-Navigation:无法隐藏标头嵌套导航器
const HitchhikingMapNavigator = StackNavigator({
hitchhikingMap: { screen: HitchhikingMapViewContainer },
spotDetails: { screen: SpotDetailsViewContainer }
}, {
navigationOptions: {
header: {
visible: false
}
}
});
const SettingsNavigator = StackNavigator({
// some other routes
});
export default AppNavigator = TabNavigator({
hitchhikingMap: { screen: HitchhikingMapNavigator },
settings: { screen: SettingsNavigator }
}, {
navigationOptions: {
header: {
visible: false,
},
},
});
正如你所看到的,我把这些标头的visilibility假无处不在,即使在我HitchhikingMapViewContainer
的观点:
class HitchhikingMapView extends React.Component {
static navigationOptions = {
title: 'Map',
header: {
visible: false,
},
//...other options
}
然而,标题栏仍是可见:
如果我不嵌套导航器(即如果我把这个代码,跳过嵌套的一个):
export default AppNavigator = TabNavigator({
hitchhikingMap: { screen: HitchhikingMapViewContainer },
settings: { screen: SettingsNavigator }
});
然后头正确隐藏。
所以结论:当我有两个嵌套的导航器时,我不能使标题不可见。有任何想法吗?
对于那些谁仍在寻找答案,我将它张贴在这里。
所以两个解决方案:
1解决方法:在使用StackNavigator headerMode: 'none'
。这将从StackNavigator中的所有屏幕删除标题
第二种解决方案:在StackNavigator中使用headerMode: 'screen'
,并在要隐藏标题的屏幕的navigationOptions
中添加header: { visible: false }
。
更多信息可以在这里找到:https://reactnavigation.org/docs/navigators/stack
这为我工作:
headerMode: 'none'
在''react-navigation“中不起作用:”^ 1.0.0-beta.7“ –
我有”react-navigation“:”^ 1.0.0-beta.9“和方法 - >静态navigationOptions = {header:false}为我工作。 –
@DanielArenas你是我的英雄伙伴 –
从v1.0.0-beta.9
开始,请使用下,
static navigationOptions = {
header: null
}
这为我工作,我在Android方面的工作中反应原生版本0.45
static navigationOptions = {
header: null
}
这对我隐藏导航:
static navigationOptions = {
header: null
};
至于React Navigation 1.0.0-beta.11 header:{visible:false}不起作用。改用header:null。 –