2017-07-17 7 views
4

Zum Beispiel habe ich 2 Komponenten. In 1. mache ich Async-Anruf auf dem Server und nach dem Versand Aktion, um Antwort in Redux-Shop zu setzen. In der zweiten Komponente möchte ich auf die Antwort warten und nachher etwas speichern.Warten auf Daten in Redox

erste Komponente sieht aus wie

const response = await api.call(); // async call on server 
dispatch(putToTheStore(response)); // put data to the store 

zweite Komponente sieht aus wie

await props.response; // here i want to wait data come to store 

// and after it actually come to the store, do some work 

Ist es möglich?

Antwort

4

Wenn Sie Ihre zweite Komponente unter Verwendung der react-reduxconnect-Funktion mit dem Speicher verbinden, müssen Sie keine expliziten Änderungen an der Komponente vornehmen. Die Daten, die Sie dem Geschäft hinzugefügt haben, sind für die Komponente einfach als prop verfügbar.

Wenn Sie (synchron) einige Arbeit an den geladenen Daten, z. Wenden Sie einen Filter an, oder sortieren Sie, ich würde empfehlen, dies direkt in der Funktion mapStateToProps zu tun, da diese Funktion automatisch jedes Mal aufgerufen wird, wenn der Speicher aktualisiert wird, um das neue props für Ihre Komponente zu berechnen.

Wenn Sie zusätzliche Arbeit in der zweiten Komponente ausführen müssen, d. H. Mehr Daten basierend auf dem vorherigen asynchronen Aufruf laden, müssen Sie die componentWillReceiveProps-Funktion implementieren.

+0

componentWillReceiveProps - vergaß dies –