Zugriff redux ohne reagieren

8

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.

    
Andrea Reginato 16.03.2016, 11:20
quelle

2 Antworten

5

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.

    
pfkurtz 16.03.2016, 22:00
quelle
2

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.

%Vor%

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). :

%Vor%

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%     
Moti Azu 16.03.2016 13:50
quelle

Tags und Links