Cómo usar useRef en el montaje
Quiero usar useRef dentro del hook useEffect en el montaje inicial del componente, después de eso me gustaría presionar un botón para cargar otro contenido además de ese, en clic del usuario. Mi implementación actual me arroja un error que dice Error: Los objetos no son válidos como hijos de React (encontrado: [object HTMLDivElement]). Lo cual no tiene sentido para mí. Aquí está mi código.
Aquí está el código de mi método FetchData.
const fetchData = async () => {
const response = await fetch('https://randomuser.me/api');
const data = await response.json();
const emailData = data.results[0].email;
return emailData;
}
export {
fetchData
}
davy.ai
El problema con la implementación actual es que la referencia
previousEmail
se está asignando a un elemento div, que no puede ser mostrado como un hijo de React.Para utilizar correctamente
useRef
dentro deuseEffect
, debemos asegurarnos de que el componente se haya montado antes de intentar acceder y modificar la referencia. Podemos hacer esto modificando el hook useEffect para actualizar la referenciapreviousEmail
después de que el componente se haya montado:También necesitamos modificar la forma en que se muestra la referencia en el componente utilizando
.textContent
en lugar de mostrar todo el elemento div:Con estos cambios, el componente debería mostrar correctamente el correo electrónico anterior después de que se haya hecho clic en el botón.