Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
¿Cómo uso 'useEffect' en React 18?

Estoy siguiendo un tutorial de youtube, y el tutorial usa React 17 y yo uso React 18. Estoy en una sección donde estamos formateando un texto animado, todo funciona bien, pero la parte en la que estoy está configurando las letras de la oración para cambiar al pasar el mouse. Recibo el siguiente error:

react-dom.development.js:86 Advertencia: useEffect no debe devolver nada más que una función, que se utiliza para la limpieza. Volviste: 2

Aquí está el fragmento de código que me está dando problemas:

 useEffect(() => { return setTimeout(() => { setLetterClass('text-animate-hover') }, 4000) }, [])

Aquí está mi scss para la clase text-animate-hover:

 .text-animate-hover { min-width: 10px; display: inline-block; animation-fill-mode: both; &:hover { animation: rubberBand 1s; color: #ffd700; } }

Estoy leyendo que no necesito usar 'useEffect' con React 18, pero no entiendo qué debería hacer en su lugar. La mayoría de las búsquedas que he realizado han arrojado muchas instancias que usan 'useEffect' con problemas 'async', que tengo problemas para relacionarlos con mi problema específico.

apreciaría cualquier ayuda con esto.

-N8

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Siempre debe borrar el tiempo de espera o cualquier intervalo en el desmontaje del componente.

 useEffect(() => { let timeout; timeout = setTimeout(() => { setLetterClass("text-animate-hover"); }, 4000); return () => { clearTimeout(timeout); }; }, []);
about 4 years ago · Juan Pablo Isaza Relatório

0

Elimina el retorno del useEffect, así:

 useEffect(() => { setTimeout(() => { setLetterClass('text-animate-hover') }, 4000); }, []);

Puede leer más sobre useEffect aquí: https://reactjs.org/docs/hooks-effect.html

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda