2017-09-25 3 views
2

Ich bin für eine gute Lösung für Redux Aktion basierter Umleitung suchen, react-navigationReagieren Navigation in der Komponente auf redux speichert Änderung umleiten

Aktuelles Szenario mit: In dem App.js ich die redux Speicher initialisieren und macht den Haupt .js Komponente in ihm. In der Haupt komp. Ich warte auf das Rehydrieren des Redox-Persists (und später auf alle Synchronisationsaktionen, die auch enden). Wenn es fertig ist, render ich die Navigator comp .. (Wenn es möglich ist, möchte ich die Auth-Token-Checker-Aktion hier aufrufen und Redirect basierend auf einem Redox-Speicher-Wert (IsAuth). Im Moment weiß ich nicht wie.)

Der Navigator lädt zuerst die LoginScreen-Komponente. wo ich die Auth-Token-Aktion vor dem Mount (cWillMount) aufrufen. Das Problem besteht darin, dass ich den Umleitungscode nicht in eine Methode einfügen kann, die bei der Änderung des REUDX-Speichers (z. B. Rendern) erneut ausgeführt wird.

Wo sollte ich den Umleitungscode einfügen, der ausgeführt wird, wenn sich die Geschäftsvariable ändert?

+0

Es gibt mehrere Anleitungen zur Handhabung von React und Auth. Was hast du bisher versucht, kannst du deinen Code zeigen? – Peter

+0

Die einzige wichtige Sache, die ich ausprobiert habe, ist, was ich aufgeschrieben habe. Leider kann ich den Code nicht anzeigen. – Xyzor

Antwort

1

Wenn Sie dies noch nicht getan haben, können Sie versuchen, react-navigation in Redux zu integrieren. Official documentation und this article werden helfen. Das Verwalten von allem in Redux lohnt sich wahrscheinlich, da Sie Ihre Navigationslogik in Ihre Reduzierungen und Aktionen verschieben können.

Für den Fall des Tokens nehme ich an, dass Sie ein Token mit AsyncStorage gespeichert haben. Here Sie können ein Beispielprojekt von mir finden, wo ich nur einen OAth2.0-Autorisierungsfluss implementiere.

Ich habe einen "Splash" -Bildschirm verwendet, um das Token von AsyncStorage zu laden. Abhängig vom Ergebnis navigiert die App dann entweder zum Begrüßungsbildschirm oder zum Hauptbildschirm. Über den Begrüßungsbildschirm können die Benutzer zu einer Login-Webansicht umleiten, in der die Autorisierung erfolgt.

Ich benutzte Redux Thunk für die Behandlung von Nebenwirkungen. Ich hoffe, dass meine Implementierung Ihnen helfen kann.

+0

Danke für das Beispiel. Wenn ich den Code durchlaufe, hilft es mir bei meinem Problem. – Xyzor

Verwandte Themen