Solución:
El primer parámetro en componentDidUpdate
es prevProps
. El segundo parámetro es prevState
. La documentación establece claramente que:
componenteDidUpdate (prevProps, prevState, instantánea)
Esta
componentDidUpdate(prevState) {...}
no es una firma correcta para el gancho. Aunque se llamó al primer parámetro prevState
, contiene accesorios anteriores.
Es posible alternar parámetros de función en función de su aridad, pero esto no se implementa en React y se considera una mala práctica en general porque conduce a firmas más complejas.
Para no causar advertencias de linter, los parámetros no utilizados se pueden subrayar por convención:
componentDidUpdate(_prevProps, prevState) {...}
No importa si está usando prevProps
en su función o no, debe incluirse, ya que los argumentos se ordenan en funciones sí importa.
componentDidUpdate(prevProps, prevState)
Si omite el prevProps
argumento, el prevState
(incluso aunque el nombre diga claramente que es la versión anterior del estado) representaría la versión anterior de accesorios.
Es solo un espacio en blanco. Puede usar un guión bajo para decirles a los demás (o solo a usted mismo) que no se usa en esa función.
componentDidUpdate(_, prevState)
Porque componentDidUpdate
recibe prevProps
como el primer argumento y prevState
como segundo. Si escribe la función como componentDidUpdate(prevState)
esta recibiendo prevProps
pero se llamará prevState
. No importa cómo nombre los argumentos, serán prevProps
, prevState
, y snapshot
, respectivamente.
Si no necesita el primer argumento, puede usar un guión bajo, por ejemplo. componentDidUpdate(_, prevState)
.