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

423
Visualizações
¿Cómo desmontar next/script en el cambio de página en next.js?

Quiero cargar un script solo en ciertas páginas. Next.js recomienda usar la etiqueta next/script para ello. Sin embargo, cuando navego a algunas páginas diferentes, aún puedo ver el script presente al final del body en HTML.

ingrese la descripción de la imagen aquí

 import Script from "next/script"; const Comments = () => { return ( <div className="giscus mt-16"> <Script src="https://giscus.app/client.js" data-repo="GorvGoyl/Personal-Site-Gourav.io" data-repo-id="MDEwOlJlcG9zaXRvcnkyOTAyNjQ4MTU=" data-category="Announcements" data-category-id="DIC_kwDOEU0W784CAvcn" data-mapping="pathname" data-reactions-enabled="0" data-emit-metadata="0" data-theme="light" data-lang="en" crossOrigin="anonymous" strategy="lazyOnload" onError={(e) => { console.error("giscus script failed to load", e); }} ></Script> </div> ); };

Sospecho que Next.js no está limpiando el script en la acción de cambio de ruta. ¿Cómo me aseguro de que los scripts se eliminen al cambiar de página?

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

0

Estaba enfrentando el mismo problema. La única solución que funciona para mí es volver a cargar la página como routeChangeStart . También lo hice en un gancho personalizado para que pueda reutilizarse con facilidad.

Gancho personalizado

 import { useRouter } from "next/router"; import { useEffect } from "react"; export default function useScript(url) { const router = useRouter(); useEffect(() => { const script = document.createElement("script"); script.src = url; script.async = true; document.body.appendChild(script); // Needed for cleaning residue left by the external script that can only be removed by reloading the page const onRouterChange = () => { router.reload(); }; router.events.on("routeChangeStart", onRouterChange); return () => { router.events.off("routeChangeStart", onRouterChange); document.body.removeChild(script); }; }, [router]); }

Uso:

 import useScript from "../utils/useScript" export default function index(){ useScript("<script-ulr>"); }
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