2016-11-09 5 views
0

Ich versuche zu (dies ist Hack-y durch die Art und Weise) umgeht die Seite leer kommen, wenn eine App erfrischenden Router mit React - mit mir gehe hier - durch das Implementieren einer Funktion, die eine Datenbank nach dem verlorenen props auf der Komponente der aktuellen Route abfragt.Reagieren: Re-fetching Requisiten für den Bestandteil, wenn erfrischend w/React Router

Die Funktion holt die Daten in Ordnung zurück und ruft einen Aktionsersteller auf, um es an den Reducer weiterzugeben, aber ich weiß nicht, wo der beste Ort ist, um eine Funktion wie diese aufzurufen.

Das Problem mit einer Seite zu aktualisieren Router mit React ist, dass in der Konsole reagieren beklagt, dass die Komponente fehlt sein props (wenn es einen Behälter Stücke Zustand empfängt) und macht eine leere Seite. Ich habe versucht, ruft dies in componentWillMount() und innerhalb des render() Verfahren (vor allen anderen Codezeile innerhalb machen), kann aber nicht eine erneute Rendern auf dem Bauteil trotz der Daten auszulösen scheinen die Reduzierung zu erreichen.

Also meine Frage ist: Gibt es ein guter Ort, um eine Funktion aufzurufen, die die gespeicherten Daten auf Zustand, um die Komponente neu zu rendern erneut abzurufen würde?

Hinweis: Die Funktion, die ich geschrieben habe, ist, natürlich, async. Ich vermute, dass dies eine gewisse Fremdheit erzeugen könnte, aber ich bin mir nicht sicher

Antwort

0

Der gute Ort, um Ihre Aktion aufzurufen, wird die componentWillMount-Methode auf Ihrer Route-Komponente sein. Sie haben erwähnt, dass Sie versucht haben, den Fetcher in die Methode componentWillMount zu stellen, aber ich nehme an, Sie haben versucht, ihn in die Methode der UI-Komponente und nicht in die Route einzufügen.

Verwandte Themen