Vielleicht können Sie die onEnter und onChange Callbacks nutzen, wenn Sie rootRoute konfigurieren.
In OnEnter Rückruf können Sie den ursprünglichen Routenpfad aufzeichnen. Im OnChange-Callback können Sie den aktuellen/nächsten Routenpfad vergleichen, den Verlauf des aufgezeichneten Pfads überprüfen und den Pfad aufzeichnen. Daher können Sie, da Sie bei jeder Änderung der Route den Routenverlauf überprüfen und vergleichen können, alle kreisförmigen Verbindungen anhalten.
Über den Status aller Komponenten zu speichern, wenn Sie redux verwenden, kann der gesamte App-Status in einem Objekt, dem Redux-Speicher speichern.
Wenn Sie den Status der Komponente zu diesem Zeitpunkt vor dem Verlassen speichern möchten, können Sie eine Aktion save component state
in senden und den Status in componentWillMount
wiederherstellen.
Hier ein Ausschnitt ist:
var rootRoute = {
path: '/',
onEnter: enter,
onChange: change,
component: MyApp,
indexRoute: { component: Home },
childRoutes: [
LoginRoute,
...
{path: 'home', component: Home},
{
path: '*',
component: NotFound
}
]
};
function enter (next) {
// pathStore record all navigation history
pathStore.record(next.location.pathname);
}
function change (cur, next, c) {
// when hit cur path links in nav, pathname is same, key is different.
if (cur.location.pathname !== next.location.pathname) {
...
}
}
ein usecase ist die gescrollt Position zu erhalten und eine umgekehrte Übergang zu tun zur vorherigen genauen Zustand zurück zu erhalten (es gibt viele implizite versteckten Zustand, wie Eingangszustände, Rollposition, usw. .. die nicht von React abgedeckt sind) – gre