Ich weiß, dass es nicht ein Standardverhalten/Funktion von React-Router, um uns helfen, die aktuelle Komponente leicht neu laden, aber ich brauche das wirklich in meiner Anwendung.React Router nicht neu laden Komponente beim Ändern von URL-Parametern
Meine Anwendung befasst sich mit Produkten. Ich habe eine Produktliste, die ich laden kann, und wenn ich auf einen Artikel klicke, werden die betreffenden Produktdetails angezeigt.
Auf dieser Seite habe ich Produkt-Links im Zusammenhang, die die gleiche Komponente laden, aber mit einem anderen Produktdetails, befindet sich in
<Route path="/products/:id/details" component={ProductDetail} />
bin ich Daten in meinem componentWillMount holen, und es scheint, dass, wenn ich nur ändern die URL, eine neue Komponente ist NICHT gemountet, und so habe ich immer meine alten Daten angezeigt, ohne etwas zu holen.
Als Anfänger mit React suche ich nach etwas Hilfe oder einigen Tricks, um die betroffene Komponente neu zu laden. Ich meine, dass ich den ProductDetail mit dem guten Produkt neu laden kann.
Ich habe versucht, mich mit componentWillUpdate (eine Methode, in der ich sehe, dass der Router URI ändert: D) zu sehen, aber ich kann nicht setzenState innerhalb davon, um meine Komponente neu zu laden (es scheint nicht zu sein gute Praxis überhaupt)
Eine Idee, wie kann ich das schaffen?
EDIT: Nach der ersten Antwort muss ich OnEnter verwenden. Ich bin jetzt mit dem Weg vorbei Zustand/Requisiten an die betreffenden Komponente fest:
const onEnterMethod =() => {
return fetch(URL)
.then(res => res.json())
.then(cmp => {
if (cmp.length === 1) {
// How to pass state/props to the next component ?
}
});
};
Danke dafür, ich denke ich suche onEnter, ich werde meine Frage bearbeiten;) – mfrachet
Das hängt davon ab, was Sie verwenden, wenn Redux oder Flussmittel. Ich weiß nichts über den Fluss, aber ich werde das Redux-Beispiel veröffentlichen. – OriolBG