2017-12-19 6 views
0

Ich bin derzeit mit meinem Projekt fest, ich habe viele verschachtelte Navigatoren und ich kann nicht herausfinden, wie man eine von ihnen vor der Navigation zurückgesetzt.Zurücksetzen Stapel nach dem Drücken der TabBar Route

Hier ist meine Navigatoren Struktur: (der Bildschirm X das gleiche ist)

  • MainNavigator
    • TabBarNavigator
      • StackNavigator A
        • Bildschirm A -> navigieren X-to-Screen
        • Bildschirm B
      • StackNavigator B
        • Screen C -> Ebene X
      • StackNavigator C
        • Bildschirm E
        • Bildschirm D to Screen -> Ebene X
        • to Screen
        • Bildschirm F
      • StackNavigator D
    • Andere Komponenten

Also, wenn ich von Screen A auf Bildschirm X navigieren, kann ich immer noch zu anderen Seefahrern navigieren (B, C, D) weil die tabBar immer noch vorhanden ist und es gut ist. Wenn ich jedoch den Bildschirm X in Navigator A öffne, navigiere zu einem Bildschirm von Navigator B. Wenn ich wieder auf dem Navigator bin, möchte AI auf Bildschirm A landen und nicht auf Bildschirm X, wie es jetzt der Fall ist (der Bildschirm X ist) immer noch oben auf dem Stack von Navigator A).

fortzusetzen, mein nav actualy tut: - Navigator A -> Bildschirm A -> Bildschirm X -> Navigator B -> Bildschirm B -> Zurück zu Navigator A, aber landet auf dem Bildschirm X

Und i möchte es tun: - Navigator A -> Bildschirm A -> Bildschirm X -> Navigator B -> Bildschirm B -> Zurück zu Navigator A und lande auf Bildschirm A

Ich habe versucht, dies in meinem einrichten Bildschirm X Navigationsoption, aber es funktioniert nur mit Navigator A:

Jede Hilfe wäre willkommen, da ich jetzt schon eine ganze Weile hier feststecke.

Reagieren: 16.0.0

Reagieren Nativ: https://github.com/expo/react-native/archive/sdk-23.0.0.tar.gz

Reagieren Navigation:^1.0.0-beta.

https://reactnavigation.org/docs/navigators/navigation-actions

Auf dem reset Methode Beispiel finden Sie:: 19

Derzeit arbeitet er an iOS Simulator

+0

Haben Sie jemals redux verwenden? Wenn ja, können Sie sich damit integrieren und die Kontrolle über Ihre Routen übernehmen: https://reactnavigation.org/docs/guides/redux –

+0

Ich benutze redux, aber ich habe eine harte Zeit zu verstehen, wie es hier helfen kann, da dies aussehen wie ein "klassisches" Navigationsproblem. – Clonescody

Antwort

0

Mit redux Integration können Sie die reset Methode von NavigationActions verwenden

import { NavigationActions } from 'react-navigation' 

const resetAction = NavigationActions.reset({ 
    index: 0, 
    actions: [ 
    NavigationActions.navigate({ routeName: 'Profile'}) 
    ] 
}) 

this.props.navigation.dispatch(resetAction) 
0

In react-navigation Verschachtelung der Registerkarte ist Bit-Komplex Ich habe auch etwas Simi konfrontiert lar zu diesem key Wert

NavigationActions.reset({ 
    index: 0, 
    key: null, 
    actions: [ 
     NavigationActions.navigate({routeName: 'routeNameToNavigate'}) 
    ] 
}); 

hat, gelöst mein Problem und navigiert mir von verschachtelter Wurzel. Hoffe das wird dein Problem lösen. Hier ist Ausgabe

dicussed

https://github.com/react-community/react-navigation/issues/1949

Verwandte Themen