Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

189
Vistas
Reaccionar enrutador: la página renderizada se desplaza automáticamente hacia abajo

Noté que cada vez que accedo a una ruta, la página se desplaza automáticamente hacia abajo cuando uso <Link> , estoy un poco confundido porque está funcionando y obtengo la página, pero se desplaza automáticamente hasta el final por esto comportamiento.

Aquí está el enrutador:

 import {Link,Routes,Route,Navigate} from 'react-router' const App = () => { const user=true return <div> <Routes> <Route exact path='/' element={<Home/>} /> <Route exact path="/products/:category" element={ <ShoppingCat/>}/> <Route exact path="/product/:id" element={ <ProductView/>}/> <Route exact path="/cart" element={ <Cart/>}/> <Route exact path="/login" element={user?<Navigate to='/'/>: <Login/>}/> <Route exact path="/register" element={ user? <Navigate to='/'/> :<Register/>}/> </Routes>

este es un botón para acceder a la ruta <ProductView/> :

 <Link to={`/product/${product._id}`}> <button className='btn-4'>View </button> </Link>
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Sin ver más código, supongo que la ubicación de su botón se encuentra en la parte inferior de la página, por lo que cuando cambia de ruta, permanece en la parte inferior ya que no tiene un componente de desplazamiento hacia la parte superior.

Para desplazarse hasta la parte superior en cada cambio de ruta, haga lo siguiente.

Nuevo componente ScrollToTop.js

 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);

Luego cambia tu app.js a esto

 import {Link,Routes,Route,Navigate} from 'react-router' const App = () => { const user=true return <div> <ScrollToTop /> <Routes> <Route exact path='/' element={<Home/>} /> <Route exact path="/products/:category" element={ <ShoppingCat/>}/> <Route exact path="/product/:id" element={ <ProductView/>}/> <Route exact path="/cart" element={ <Cart/>}/> <Route exact path="/login" element={user?<Navigate to='/'/>: <Login/>}/> <Route exact path="/register" element={ user? <Navigate to='/'/> :<Register/>}/> </Routes> </div>
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si bien la respuesta anterior es buena para versiones anteriores, withRouter y el historial ya no existen en V6, así es como se ve el desplazamiento hacia el envoltorio superior en la versión posterior:

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

y en index.js:

 import ScrollToTop from "./ScrollToTop"; ReactDOM.render( <Router> <ScrollToTop /> <App /> </Router>, document.getElementById("root") );

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda