2017-07-06 3 views
1

Ich versuche herauszufinden, was der richtige Weg ist, dies zu tun ist.Ändern von Routen nach erfolgreichem Saga

Sagen wir, wir haben einen Vorrat an Artikeln. Diese Elemente können bearbeitet, gelöscht und erstellt werden. Beim Bearbeiten oder Hinzufügen eines Elements ändert sich die Route zu/item/add oder/item/edit/{id}.

Nachdem ein Artikel erfolgreich von Saga hinzugefügt oder bearbeitet wurde, möchten wir ihn zurück an die Basisroute senden. Was ist der richtige Weg, um dies zu tun?

Ich habe zwei Möglichkeiten gesehen, one where you inject a history object in ein und dann auch das History-Objekt in die Saga's. Ein anderer, um einen "Status" ("", "fehlgeschlagen", "Erfolg") im Elementspeicher in den Komponenten zu behalten und diesen Status zurückzusetzen, wenn die Komponente unmounts seit dem Hinzufügen und Bearbeiten ist, müssen beide den Status verwenden.

Welches ist der richtige Weg, um dieses Problem zu umgehen?

Antwort

3

In der Vergangenheit habe ich verwendet reagieren-Router v3 mit reagieren-Router-redux Integrationsmaßnahmen zu versenden, die die Route ändern.

Reactor Router 4 hat ein react-router-redux Paket, das immer noch in Alpha-Stufe ist. Obwohl es Alpha ist, funktioniert diese Funktionalität gut für mich, aber Sie sollten es selbst überprüfen.

In Ihrer Saga, können Sie die put Effekt verwenden, um die Aktion zu versenden:

import { push } from 'react-router-redux'; 

yield put(push('/route')); 
+0

Awesome, Perfect. –

Verwandte Themen