React: getDerivedStateFromProps se ejecuta después de setState # 13015

Creado en 24 dic. 2019  ·  4Comentarios  ·  Fuente: facebook/react

Idealmente, getDerivedStateFromProps no debería llamarse debido al setState del componente actual. Pero se está comportando así. ¿Alguien puede explicarlo?

No se pudo encontrar la solución en # 13015

Question

Todos 4 comentarios

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á 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.

Gracias

@bvaughn , gracias por la respuesta

¿Fue útil esta página
0 / 5 - 0 calificaciones