React: getDerivedStateFromProps est exécuté après setState # 13015

Créé le 24 déc. 2019  ·  4Commentaires  ·  Source: facebook/react

Idéalement, getDerivedStateFromProps ne doit pas être appelé en raison de setState du composant actuel. Mais il se comporte ainsi. Quelqu'un peut-il expliquer?

Impossible de trouver la solution dans # 13015

Question

Tous les 4 commentaires

setState conduira à re-render de composant. Pour chaque render de composant, getDerivedStateFromProps doit être appelé. Voici comment fonctionne getDerivedStateFromProps .

Ce que vous devez considérer, c'est comment renvoyer un état partiel à fusionner.

Sans exemple de code, je ne comprends pas ce que vous dites ou demandez.

On s'attend à ce que getDerivedStateFromProps soit appelé après un setState , puisque l'état retourné par getDerivedStateFromProps est basé à la fois sur l'actuel props et sur le state précédent state . Donc, si l'état a changé, (par un appel setState ), il est possible que l'état dérivé ait également changé (puisqu'il s'agit d'une combinaison de props et state ) .

Nous ne l'avons pas rappelé auparavant si props n'a pas changé, mais ce comportement a causé des problèmes et nous l'avons donc changé (corrigé) en 16.4 comme mentionné dans ce billet de blog:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops

Si vous souhaitez partager du code et poser une question spécifique sur la raison pour laquelle la méthode est exécutée, l'un de nous pourrait jeter un coup d'œil. Pour l'instant, je suppose que votre question a été répondue: sourire:

setState conduira à re-render de composant. Pour chaque render de composant, getDerivedStateFromProps doit être appelé. Voici comment fonctionne getDerivedStateFromProps .

Ce que vous devez considérer, c'est comment renvoyer un état partiel à fusionner.

Merci

@bvaughn , merci pour la réponse

Cette page vous a été utile?
0 / 5 - 0 notes