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 zure-render
der Komponente. Für jederender
Komponente solltegetDerivedStateFromProps
aufgerufen werden. So funktioniertgetDerivedStateFromProps
.Was Sie berücksichtigen sollten, ist, wie Sie einen Teilzustand zum Zusammenführen zurückgeben.
Vielen Dank
@bvaughn , Danke für die Antwort