React: getDerivedStateFromProps wird nach setState # 13015 ausgeführt

Erstellt am 24. Dez. 2019  ·  4Kommentare  ·  Quelle: facebook/react

Im Idealfall sollte getDerivedStateFromProps aufgrund des setState der aktuellen Komponente nicht aufgerufen werden. Aber es verhält sich so. Kann jemand erklären?

In # 13015 konnte keine Lösung

Question

Alle 4 Kommentare

setState führt zu re-render der Komponente. Für jede render Komponente sollte getDerivedStateFromProps aufgerufen werden. So funktioniert getDerivedStateFromProps .

Was Sie berücksichtigen sollten, ist, wie Sie einen Teilzustand zum Zusammenführen zurückgeben.

Ohne Beispielcode verstehe ich nicht, was Sie sagen oder fragen.

Es wird erwartet, dass getDerivedStateFromProps nach einem setState aufgerufen wird, da der von getDerivedStateFromProps Status sowohl auf dem aktuellen props als auch auf dem vorherigen state basiert. setState ), hat sich möglicherweise auch der abgeleitete Status geändert (da es sich um eine Kombination aus props und state ). .

Wir haben es zuvor nicht erneut aufgerufen, wenn sich props nicht geändert hat, aber dieses Verhalten hat Probleme verursacht, und so haben wir es in 16.4 geändert (behoben), wie in diesem Blog-Beitrag erwähnt:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops

Wenn Sie Code freigeben und eine bestimmte Frage dazu stellen möchten, warum die Methode ausgeführt wird, kann einer von uns einen Blick darauf werfen. Im Moment gehe ich jedoch davon aus, dass Ihre Frage beantwortet wurde: smile:

setState führt zu re-render der Komponente. Für jede render Komponente sollte getDerivedStateFromProps aufgerufen werden. So funktioniert getDerivedStateFromProps .

Was Sie berücksichtigen sollten, ist, wie Sie einen Teilzustand zum Zusammenführen zurückgeben.

Vielen Dank

@bvaughn , Danke für die Antwort

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen