2016-11-09 2 views
6

Ich bin im Prozess des redux-beobachtbaren Lernens, und ich habe einige Zweifel:Sollten wir einen Epic pro Aktionstyp erstellen? in redux-beobachtbar

Sollen wir ein Epic für jede Aktion zu sehen?

export const actionEpic = action $ => action$.ofType('ACTION') 
export const action2Epic = action $ => action$.ofType('ACTION2') 

Oder können wir es für viele wie Reduzierstücke mit Schalter erstellen? jeden einzelnen Epic in Convine in der Middleware importieren ist eine Menge Arbeit

Antwort

8

Eine große Mehrheit der Epen wird beginnen, indem eine einzelne Aktion, z. action$.ofType(SOMETHING). Dies liegt daran, dass diese Aktionen normalerweise einige Nebeneffekte (wie einen AJAX-Aufruf) auslösen, die für eine einzelne Aufgabe spezifisch sind.

Denken Sie an etwas wie das Holen eines Benutzermodells. Normalerweise möchten Sie nur auf FETCH_USER hören, um diesen Prozess zu starten, aber sicherlich kann das gleiche Epic andere Aktionen anhören, um zu wissen, wann Anfragen während des Flugs oder ähnliches abgebrochen werden müssen.

Wenn Sie Nebenwirkungen in einem einzigen Epos mixen, wie zum Beispiel eines erstellen, das sowohl das Abrufen des Benutzers als auch das Abrufen der Beiträge eines Benutzers behandelt, beginnen Sie, Ihre Epen schwieriger zu warten und zu testen.

Alles gesagt, es gibt keine Regeln. Es gibt legitime (aber seltene) Fälle für ein episches Hören von mehreren Aktionen, um einige Nebeneffekte zu beginnen. z.B. Wenn ein Epic eine generische Aufgabe behandelt, die für mehrere Domänen gilt, ist die Protokollierung am offensichtlichsten, aber es gibt noch andere.

Genau wie Reducer können mehrere Epen auf die gleiche Aktion hören, dies macht jedoch nur Sinn, wenn zwischen ihnen wenig Koordination erforderlich ist.

+0

Verstanden, vielen Dank Jay, mach weiter dieses Tool groß. – Casy

+0

Gern geschehen, und danke! – jayphelps

+0

@jayphelps Würdest du etwas Licht darüber werfen, wie man mehrere Aktionen in einem Epos hören würde? http://stackoverflow.com/questions/43540419/redux-observable-fire-same-epic-for-multiple-actions – Edmund

Verwandte Themen