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

398
Visualizações
Desplácese hacia arriba en cada transición react-router-dom v6

Estoy tratando de desplazarme en la parte superior de cada cambio de página con react-router dom v6. El código se desplaza hacia atrás en la parte superior solo en mi página de inicio y no en la página de detalles de mi personaje. He probado muchas soluciones pero no puedo hacer que funcionen. Estoy usando "react-router-dom": "^6.2.2",

Esto es lo que he conseguido hasta ahora:

ScrollToTop.js:

 import { useEffect } from "react"; import { useLocation } from "react-router-dom"; export default function ScrollToTop({ children }) { const { pathname } = useLocation(); useEffect(() => { window.scrollTo(0, 0); }, [pathname]); return children; }

Mi aplicación.js

 <Router> <ScrollToTop> <Header /> <Routes> <Route path="/" element={<Home />} /> <Route path="/character/:char_id" element={<CharacterDetail />} /> <Route path='*' element={<PageNotFound />} /> </Routes> <Footer /> </ScrollToTop> </Router>

También intenté hacer mi componente directamente usando 'window.scrollTo(0, 0);' y desplazándome a una ID en mi useEffect sin éxito. Agradecido por su orientación.

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

0

Parece que también puede depender del navegador, algunos navegadores están comenzando a manejar la "restauración de desplazamiento" por sí mismos ( especificaciones ).

 import { useEffect } from "react"; import { useLocation } from "react-router-dom"; export default function ScrollToTop({ children }) { const { pathname } = useLocation(); useEffect(() => { const canControlScrollRestoration = 'scrollRestoration' in window.history if (canControlScrollRestoration) { window.history.scrollRestoration = 'manual'; } window.scrollTo(0, 0); }, [pathname]); return children; }

Nota adicional : no pasaría niños a este componente, sino que lo renderizaría como un hermano de la aplicación, de esta manera no activaría una nueva renderización cuando cambie la ubicación, a menos que sea necesario:

 <Router> <ScrollToTop /> <App /> </Router>
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