React: getDerivedStateFromProps é executado após setState # 13015

Criado em 24 dez. 2019  ·  4Comentários  ·  Fonte: facebook/react

Idealmente, getDerivedStateFromProps não deve ser chamado devido ao setState do componente atual. Mas está se comportando assim. Alguém pode explicar?

Não foi possível encontrar solução em # 13015

Question

Todos 4 comentários

setState levará a re-render do componente. Para cada render de componente, getDerivedStateFromProps deve ser chamado. É assim que getDerivedStateFromProps funciona.

O que você deve considerar é como retornar um estado parcial para mesclar.

Sem o código de exemplo, não entendo o que você está dizendo ou perguntando.

Espera-se que getDerivedStateFromProps seja chamado depois de setState , uma vez que o estado retornado por getDerivedStateFromProps é baseado em props atuais e state . Portanto, se o estado mudou, (por uma chamada setState ), é possível que o estado derivado também possa ter mudado (uma vez que é uma combinação de props e state ) .

Não o chamávamos novamente se props não mudasse, mas esse comportamento causava problemas, então o mudamos (corrigimos) em 16.4, conforme mencionado nesta postagem do blog:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops

Se você quiser compartilhar algum código e fazer uma pergunta específica sobre por que o método é executado, um de nós pode dar uma olhada. Por enquanto, vou assumir que sua pergunta foi respondida: sorria:

setState levará a re-render do componente. Para cada render de componente, getDerivedStateFromProps deve ser chamado. É assim que getDerivedStateFromProps funciona.

O que você deve considerar é como retornar um estado parcial para mesclar.

Obrigado

@bvaughn , obrigado pela resposta

Esta página foi útil?
0 / 5 - 0 avaliações