No se puede usar useRef como reemplazo de componentDidUpdate
Error
Error de tipo no detectado: el objeto (...) no es una función
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
Tengo un componente funcional y trato de aprovechar los ganchos para usar componentDidUpdate, en mi función onSubmit disparo un envío para llamar y API, y necesito ver cuál es la carga útil resultante de esa API, que se almacena en redux. ¿Pero aparece el error de arriba?
Encontré esta respuesta que decía usar useRef Equivalente a componentDidUpdate usando React hooks
Respuestas
Debes acceder a tu referencia usando mounted.current
. Como no está inicializando un valor, regresará undefined
.
Si está asignando su referencia a un elemento JSX, no podrá acceder a él hasta que se haya cargado el DOM. En ese caso, sugeriría usar el useLayoutEffect
gancho, ya que no se ejecutará hasta que se cargue el DOM.
useRef es un gancho de React. Cambiar a:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';