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á are-render
do componente. Para cadarender
de componente,getDerivedStateFromProps
deve ser chamado. É assim quegetDerivedStateFromProps
funciona.O que você deve considerar é como retornar um estado parcial para mesclar.
Obrigado
@bvaughn , obrigado pela resposta