2017-12-23 5 views
1

Ich habe einen Tab-Navigator mit 3 Routen ... die anfängliche Route, die sich in der Mitte befindet, hat eine Funktion, die bei der Montage ausgeführt wird ... der Zweck dieser Funktion soll jedes Mal ausgeführt werden, wenn der Benutzer zu dieser anfänglichen Route fährt Sei es durch Wischen, Tippen auf die Navigationsleiste oder Antippen der Zurück-Schaltfläche auf Android. Gibt es also eine Life-Cycle-Methode, die ausgeführt wird, in der ich meine Funktion in diesem Fall setzen kann? Oder gibt es eine Möglichkeit, die Navigationsoptionen dafür zu manipulieren?Wie führe ich eine Funktion beim Navigieren zur ursprünglichen Route des Tab-Navigators aus?

Danke.

Antwort

0

Grundsätzlich möchten Sie verfolgen, welcher Bildschirm gerade aktiv ist und Ihre Funktion ausführen. Sein machbar mit den onNavigationStateChange

export default() => (
    <AppNavigator 
    onNavigationStateChange={(prevState, currentState) => { 
     const currentScreen = getCurrentRouteName(currentState); 
     const prevScreen = getCurrentRouteName(prevState); 

     if (currentScreen == initialScreen) { 
     // Execute the function here 
     } 
    }} 
    /> 
); 

einen Read auf der Dokumentation vorhanden: onNavigationStateChange

+0

Was ist die prevScreen für? –

+0

@AhmedSamy zum Beispiel, wenn Sie von Bildschirm A zu Bildschirm B gehen. A ist der prevScreen. Sie könnten in Ihrem Fall nicht benötigt werden – Akis

+0

Fügen Sie 'onNavigationStateChange' auf Ihrem 'MyTabNav' hinzu – Akis

Verwandte Themen