setState
conducirá a re-render
de componente. Por cada render
de componente, se debe llamar getDerivedStateFromProps
. Así es como funciona getDerivedStateFromProps
.
Lo que debe considerar es cómo devolver un estado parcial para fusionar.
Sin código de ejemplo, no entiendo lo que está diciendo o preguntando.
Se espera que getDerivedStateFromProps
se llame después de setState
, ya que el estado devuelto por getDerivedStateFromProps
se basa tanto en el props
actual como en el anterior state
. Entonces, si el estado ha cambiado (por una llamada de setState
), es posible que el estado derivado también haya cambiado (ya que es una combinación de props
y state
) .
No lo volvimos a llamar previamente si props
no cambió, pero ese comportamiento causó problemas y, por lo tanto, lo cambiamos (lo arreglamos) en 16.4 como se menciona en esta publicación de blog:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops
Si desea compartir algún código y hacer una pregunta específica sobre por qué se ejecuta el método, uno de nosotros podría echarle un vistazo. Por ahora, supongo que su pregunta ha sido respondida: sonríe:
setState
conducirá are-render
de componente. Por cadarender
de componente, se debe llamargetDerivedStateFromProps
. Así es como funcionagetDerivedStateFromProps
.Lo que debe considerar es cómo devolver un estado parcial para fusionar.
Gracias
@bvaughn , gracias por la respuesta