2017-09-19 1 views
1

Ich benutze React Navigation mit einem Tab-Router, der mehrere Stack-Router enthält.React Navigation - Zurücksetzen des Stack-Routers auf die anfängliche Route, ohne zu wissen, welche Route das ist

In einem Bildschirm, auf den in jedem der Stack-Router zugegriffen werden kann, möchte ich eine Aktion haben, die den Stack-Router (in dem der Bildschirm ist) auf die anfängliche Route dieses Stack-Routers zurückgesetzt.

Zum Beispiel: Wenn ich auf dem Home-Stack-Router bin Ich möchte es auf den Startbildschirm zurückgesetzt, wenn ich auf dem Profil-Stack-Router bin Ich möchte es auf den Profil-Bildschirm zurückgesetzt werden.

Gibt es eine Möglichkeit, dies zu tun?

Hinweis: Ich integriere nicht mit Redux, würde Redux-Integration dies einfacher machen?

Antwort

0

Ich denke, der einfachste Weg könnte ohne redux sein, den umgeleiteten Bildschirm - den Anfangsbildschirm dieses Stapels - als Parameter in jedem navigieren zu lassen.

Zum Beispiel

this.props.navigation.navigate('CommonScreen1', { initial: 'Home'}); 
this.props.navigation.navigate('CommonScreen2', { initial: 'Home'}); 

// in CommonScreen2 do the reset to the this.props.navigation.state.params.initial 

this.props.navigation.navigate('CommonScreen1', { initial: 'Profile'}); 
this.props.navigation.navigate('CommonScreen2', { initial: 'Profile'}); 

// in CommonScreen2 do the reset to the this.props.navigation.state.params.initial 
+0

ich sehe. Gibt es eine Möglichkeit, den Anfangsparameter an alle Komponenten zu übergeben, auf die navigiert wird? – JPHorta

+0

@JPHorta Ich denke, das wäre ohne redux sehr kompliziert, da es dafür keine Standardlösung gibt. Eine Lösung kommt mir in den Sinn, dass man Bildschirme verfolgen und irgendwie den Navigationsstapel mit den richtigen Parametern zurücksetzen kann. – bennygenel

+0

Ok ich verstehe. Also, die beste Lösung wäre die Verwendung von Redux? – JPHorta

Verwandte Themen