Redux hält den vorherigen auth-Zustand zu spät wieder auf

8

Ich habe Setup-Routen eingerichtet, die authentifiziert werden sollen, um Benutzer zur Anmeldeseite umzuleiten, wenn sie nicht authentifiziert sind. Ich habe auch redux-persist eingerichtet, um meinen Auth-Zustand automatisch zu dehydrieren, damit der Benutzer bei der Aktualisierung bleiben kann. Das Problem ist, dass die Rehydrierung zu spät ist und der Benutzer bereits auf die Anmeldeseite umgeleitet wird

Die erste Standortänderung ist eine authentifizierte Route, die zweite ist die Anmeldung. Hinweis Rehydrat kommt danach. Idealerweise sollte es gleich nach @@ INIT sein?

    
Jiew Meng 02.04.2017, 13:18
quelle

2 Antworten

10

Die persistStore -Funktion, die verwendet wird, um Ihren Store persistent zu machen, hat einen dritten Parameter callback , der aufgerufen wird, nachdem die Rehydrierung des Speichers abgeschlossen ist. Sie müssen Ihre App mit einer Art Preloader starten, die darauf wartet, dass eine Rehydrierung stattfindet, und Ihre vollständige Anwendung erst dann wieder abgibt, wenn sie beendet ist.

redux-persist docs sogar a Rezept für dieses Szenario. In deinem Fall sollten alle react-router Sachen auch im ursprünglichen Loader gerendert werden:

%Vor%     
fkulikov 05.04.2017, 04:01
quelle
0

Wenn der Benutzer die Seite aktualisiert, wird der erste LOCATION_CHANGE ausgelöst, weil Sie den Verlauf mit dem Store synchronisieren. Es synchronisiert jedoch nur den Verlauf und leitet den Benutzer noch nirgendwo um.

Es kommt nur auf die zweite LOCATION_CHANGE an, die nach persistStore() auftreten sollte. Gute Neuigkeiten sind, dass persistStore() einen Rückruf hat.

%Vor%

Hoffe, das kann helfen, Ihr Problem zu lösen.

    
haipham23 05.04.2017 16:19
quelle

Tags und Links