Używam oficjalnego react-navigation do obsługi nawigacji. Mam jeden główny TabNavigator dla całej aplikacji z dwóch zakładek (tzw HitchhikingMapNavigator
i SettingsNavigator
poniżej), a każda karta ma zagnieżdżonego StackNavigator:React-Navigation: nie można ukryć nagłówka za pomocą zagnieżdżonych nawigatorów.
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,
},
},
});
Jak widać, kładę visilibility nagłówki false wszędzie, nawet w moich HitchhikingMapViewContainer
„s widok:
class HitchhikingMapView extends React.Component {
static navigationOptions = {
title: 'Map',
header: {
visible: false,
},
//...other options
}
A jednak, pasek nagłówka jest nadal widoczny:
Jeśli nie zagnieżdżę nawigatorów (tj. jeśli wstawię ten kod, pomijając zagnieżdżony):
export default AppNavigator = TabNavigator({
hitchhikingMap: { screen: HitchhikingMapViewContainer },
settings: { screen: SettingsNavigator }
});
to nagłówek jest poprawnie ukryty.
Wniosek: nie mogę utworzyć nagłówka niewidocznego, gdy mam dwa zagnieżdżone nawigatory. Jakieś pomysły?
Co do React Navigation 1.0.0-beta.11 nagłówek: {visible: false} nie działa. Zamiast tego użyj nagłówka: null. –