Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!