Redux: Abonnieren Listener kann Aktionsparameter erhalten?

Erstellt am 19. Nov. 2015  ·  3Kommentare  ·  Quelle: reduxjs/redux

warum abonnieren keine Aktion erhalten kann. Ich weiß nicht, ob das Folgende eine gute Idee ist

listeners.slice().forEach(listener => listener())
//to
listeners.slice().forEach(listener => listener(action))
discussion

Hilfreichster Kommentar

Abonnenten sollten auf den neuen Zustand reagieren, nicht auf das, was passiert ist.
Dies ist wichtig, um die Konsistenz zu gewährleisten.
Sie können benutzerdefinierte Middleware verwenden, um dies zu umgehen.

Bitte sehen Sie:

https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580

Alle 3 Kommentare

Abonnenten sollten auf den neuen Zustand reagieren, nicht auf das, was passiert ist.
Dies ist wichtig, um die Konsistenz zu gewährleisten.
Sie können benutzerdefinierte Middleware verwenden, um dies zu umgehen.

Bitte sehen Sie:

https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580

In meinem Fall wird die Aktion nach dem "Versenden" an den Server gesendet. Der Server hat denselben Redux-Speicher wie der Client und die Aktion ändert den Serverstatus, um ihn mit dem Clientstatus zu synchronisieren.
In diesem Fall ist es praktisch, wenn "subscribe listener" den Aktionsparameter erhält.

Dies kann natürlich mit Middleware erreicht werden. Es kann jedoch besser sein, wenn dies eine Standardmethode für "Listener abonnieren" ist.

Durch die Vorbereitung des gleichen Redux-Speichers sowohl auf dem Server als auch auf dem Client wird die serverseitige Zustandsmanipulation dieselbe wie die des Clients.

Bei diesem Konzept handelt es sich bei der Aktion um einen Zustandssynchronisierer, der zwischen allen verbundenen Clients einschließlich des Servers übertragen wird.

Dies ist genau der Anwendungsfall für Middleware.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jbri7357 picture jbri7357  ·  3Kommentare

wmertens picture wmertens  ·  4Kommentare

jimbolla picture jimbolla  ·  3Kommentare

ms88privat picture ms88privat  ·  3Kommentare

CellOcean picture CellOcean  ·  3Kommentare