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

185
Visualizações
¿Por qué se elimina el detector de eventos después del cambio de ruta de Next.js?

Estoy usando el siguiente useEffect en un componente para controlar el estado activo en una navegación lateral de anclaje para la página.

 const [activeIndex, setActiveIndex] = useState(0); useEffect(() => { const handleScroll = (e: Event) => { var index = nearestIndex( window.scrollY, Anchors, 0, Anchors.length - 1 ); setActiveIndex(index); } document.addEventListener("scroll", handleScroll); return () => { document.removeEventListener("scroll", handleScroll); } }, [Anchors]);

Cuando navego a otra página usando next/link , el detector de eventos de scroll se activa y luego se elimina. Esto está provocando un error dentro nearestIndex porque las referencias dentro de Anchors ahora son null .

EDITAR: Explicación de flujo de página/componente

  1. Navegar a la página 1: muestra el componente Anchor Links con el código anterior
  2. Haga clic en el enlace de anclaje: la página se desplaza un poco hacia abajo
  3. Vaya a la página 2: no contiene el componente Anchor Links, el detector de eventos de scroll se activa y arroja un error, luego se elimina el detector
  4. Vaya a la página 3: no contiene el componente Anchor Links, no hay error porque el detector de eventos de scroll ya no está registrado
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Porque return in useEffect funciona en el desmontaje de componentes. Lea la documentación de useEffect

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