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

140
Visualizações
Cómo eliminar la posición de desplazamiento con react-router v6

Tengo una aplicación de reacción y estoy luchando para eliminar la scroll-position la página anterior.

Por favor, le agradecería que entendiera mi problema antes de concluir.

No quiero conservar el scroll history . Quiero que siempre vuelva a la parte superior de la página.

He usado la solución a continuación para hacer que la aplicación se desplace hacia atrás a la parte superior de la página cada vez que un usuario navega a una nueva página.

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

El código anterior funciona muy bien sin problemas. Lo que no me funciona es:

Cuando un usuario hace clic en un Button que creé usando Link de react-router-dom , navega a la nueva página (página correcta), pero la scroll-position es de la página anterior (la página de la que proviene).

He intentado usar estos ganchos.

  • useLayoutEffect
  • withRouter (se elimina de react-router v6)
  • useHistory (se elimina de react-router v6
  • useNavigate

No están trabajando.

¿Cómo puedo resolver esto? ¿O hay algo que me estoy perdiendo?

También he intentado implementar la solución a continuación. Pero no funcionará.

 import { useEffect } from 'react'; import { withRouter } from 'react-router-dom'; function ScrollToTop({ history }) { useEffect(() => { const unlisten = history.listen(() => { window.scrollTo(0, 0); }); return () => { unlisten(); } }, []); return (null); } export default withRouter(ScrollToTop);
about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Puede desplazarse a la parte superior cada vez que el usuario ingresa a esa pantalla, con el gancho de enfoque https://reactnavigation.org/docs/function-after-focusing-screen/ .

about 4 years ago · Santiago Gelvez Relatório

0

Después de 4 horas de investigación y de intentos y errores. He encontrado la solución a esto.

En react-router v6. No necesita su ventana. en su useEffect Solo necesita tener su código como este:

 useEffect(() => { document.body.scrollTo(0, 0); });

Encontré la respuesta aquí e investigué más al respecto.

about 4 years ago · Santiago Gelvez 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