Wie in React eine Methode ausführen nachdem setState() abgeschlossen ist?
Hallo,
in einer Methode nutze ich eine for() Schleife. Beim letzten Durchlauf ändere ich mit this.setState(obj: {key: 'value'}) einen Wert. this.state.obj ist zu Beginn leer.
Danach soll eine Methode aufgerufen werden, die den aktuellen Wert von this.state.obj benötigt. Hierbei kommt es aber zum Problem, weil this.state.obj immer noch leer ist.
Wie kann ich die Methode erst ausführen, wenn sicher ist, dass der Wert von this.state.obj aktualisiert wurde oder die Methode zuvor fertig abgeschlossen ist?
Gruß ebody
2 Antworten
setState() akzeptiert als zweiten Parameter ein Callback, das dann ausgeführt wird, wenn die State-Variable geändert wurde:
this.setState({key: "value"}, () => {
console.log(this.state.key); // aktualisiert, also "value"
});
console.log(this.state.key); // noch nicht aktualisiert, also was auch immer es vor setState() war
Probiere es mit
onComponentDidUpdate()
Alternativ kannst du
setState()
als zweiten Parameter ein Callback mit übergeben.
Super, vielen Dank! setState und Callback war die Lösung. https://reactjs.org/docs/react-component.html#setstate