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?
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:
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.
Hoffe, das kann helfen, Ihr Problem zu lösen.
Tags und Links reactjs redux react-redux