2016-12-08 1 views
0

Wir haben eine React/Redux-Anwendung, die normalerweise Daten über den "normalen" Weg holt - eine Sicht ruft einen Dispatcher, der Dispatcher ruft unseren Server und löst eine Aktion mit dem Ergebnis, die wird dann über einen Reduzierer in den Zustand versetzt.View-spezifische Server-Anrufe in Redux-Anwendung

Jetzt erstellen ich eine Ansicht, die den Server aufrufen muss, um eine benutzerdefinierte URL basierend auf ein paar Eigenschaften zu erhalten. Es ist überhaupt kein globaler Status - da es nur diese Ansicht ist, die es verwendet.

Es fühlt sich nicht richtig an, den Server direkt aus der Sicht aufzurufen, aber es ist auch nicht richtig, diese Daten in den globalen Status zu versetzen.

Was ist die beste Praxis in solchen Situationen?

Antwort

2

Sie könnten den "voreingenommenen Standard" hier umgehen und eine action/lib-Datei erstellen, um den Abruf für Sie durchzuführen, und dann das Ergebnis dieses Versprechens (oder Rückrufs) als Eingabe für den Versand verwenden, mit dem Sie fortfahren.

Von der Frage, die Sie stellen, nehme ich an, dass Sie das für mehr als eine Komponente tun werden? Wenn dem so ist, denke ich, dass der erwähnte Ansatz ausreichen wird.

Weiter, wenn Sie dies nur für eine Komponente tun, könnte es genug sein, nur diese Logik in der Komponente oder in einem übergeordneten Container (HoC) zu setzen.

+0

Wir haben bereits eine server.js, die die eigentliche Anfrage erledigt, also würde ich mich nicht mit 'fetch' und json-parsing beschäftigen müssen. Beachten Sie, dass beide Ansätze in einem Containerelement auf oberster Ebene (verbunden) (wie einer OverviewPage-Komponente) auftreten würden. Mit einem HoC zu laden, könnte dieser Aufruf für mich in der Tat eine gute Idee sein - würde es die Sicht zumindest Sichtlogik beschäftigen. –