2017-07-15 6 views
1

enter image description hereWie beide Suchleiste und Tab-Schaltflächen in reagieren-native hinzufügen verwenden reagieren-Navigation

ich einen Login-Bildschirm haben, wenn der Benutzer Login sie ähnlich einem Bildschirm gebracht werden, zu dem oben gezeigt.

In diesem Bildschirm habe ich einen TabNavigator mit Registerkarten auf 5 Bildschirme, ähnlich wie im Bild oben gezeigt. Es hat auch eine Kopfzeile, etwas mit Suchleiste darin. Dieser Header sollte nur in 4 der 5 Tabs angezeigt werden und es gibt einen anderen Header, den ich in der 5. Registerkarte anzeigen muss.

Gibt es eine Möglichkeit, dies zu tun? Ich weiß, dass ich eine Ansicht in 4 der 5 Registerkarten hinzufügen kann, die gleichen Header und eine Ansicht im fünften Bildschirm, der eine andere Kopfzeile rendert, Aber ich fragte mich, ob es einen Weg gibt, ich könnte dies tun, ohne das gleiche zu rendern In allen 4 Tabs immer wieder sehen.

PS Es sollte Sie

Antwort

2

auf beiden iOS und Android arbeiten können header von TabNavigator von navigationOptions konfigurieren:

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

Und dann benutzerdefinierte navigationOptions in FifthPage:

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

ich nur erstellt eine Demo auf Expo Snack: https://snack.expo.io/rJDGpmPHZ, der 5. Bildschirm hat eine blaue h Eader, und die anderen haben einen roten.

In dem Dokument von TabNavigator bei https://reactnavigation.org/docs/navigators/tab#Screen-Navigation-Options es die header Option nicht Liste hat, denke ich, wird es StackNavigator geben werden.

+0

Wie haben Sie Kopfzeile an TabNavigator übergeben, wenn es nicht möglich ist. Ich weiß, dass es in Stacknavigator funktioniert, aber wie hast du es in deinem Tabnavigator gemacht? Ich habe Ihren Code für die Demo überprüft, die Sie hochgeladen haben, aber wenn ich versuche, Header in meinen Tabnavigator zu legen, funktioniert es nicht richtig – Chetan

+0

@Chetan Ich frage mich auch, wie das geht !! Hast du eine Lösung gefunden? Können Sie bitte meine Frage überprüfen: https://stackoverflow.com/questions/46296119/adding-tab-component-in-a-view – Yasir

Verwandte Themen