Ich möchte Zugang zum Laden (zum Versand und zur Beobachtung) ohne die Verwendung von React Components. Ich habe nach ein paar Stunden gesucht, ohne Ergebnis.
Das ist der Fall. Ich habe den Store im App-Stammverzeichnis erstellt:
%Vor% Ich bin glücklich mit der Funktion connect
, die von react-redux
angeboten wird, wenn ich Aktionen hinzufügen oder Statusänderungen in einer Komponente abhören muss, aber wenn ich einige Logiken außerhalb der Komponente (hauptsächlich Versand) einstellen möchte stecken.
Kurz gesagt, ich möchte ein Feld validieren. Ich möchte eine validation.js
-Datei erstellen, in der ich auf Änderungen im Speicher warten, die Validierungslogik ausführen und dann eine Aktion mit dem eventuellen Fehler senden kann.
Soweit es das Geschäft betrifft, ist es nicht global und ich verwende keine React-Komponente. Wie kann man den Laden auf Veränderungen aufmerksam machen und Aktionen abwickeln?
Vielen Dank im Voraus.
Das mache ich (nachdem ich meinen Laden erstellt habe):
export const dispatch = store.dispatch
Dann kannst du dispatch
von überall in deinem Code aufrufen (obwohl ich es ziemlich einfach über Event-Handler mache).
Wenn Sie Redux-Saga verwenden, um Ihre Flusskontrolle zu verwalten, müssen Sie nur selten dispatch
verwenden. , abgesehen von Event-Handlern für direkte Benutzereingaben, weil es das Dispatching in seiner put
API umschließt.
Ich denke nicht, dass Sie Änderungen direkt aus dem Laden hören sollten, aber Sie würden es brauchen, um Aktionen zu versenden.
Änderungen anhören
In redux
wäre der natürliche Ort, an dem Sie diese Art von Logik aufrufen, von der action
, die die Änderung im Feld absetzt.
fieldValidator
kann einen Verweis auf den Speicher enthalten, um den Status zu erhalten, den er benötigt, um seine Logik mit store.getState()
auszuführen, oder diese Daten von der Aktion als Parameter abrufen (mit Hilfe von asynchronen Aktionen). :
Abrufen des Geschäfts
Sobald Sie es erstellt haben, können Sie es einfach jedem zur Verfügung stellen, der es benötigt. Sie können dies entweder durch Initialisieren eines Singletons tun
%Vor%Oder indem Sie ein Mitglied injizieren
%Vor%Tags und Links javascript reactjs redux