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

200
Vistas
¿Cómo usar una barra de navegación en la aplicación React para redirigir a una página y luego desplazarse a un elemento?

(EDITADO)
Tengo una aplicación de reacción donde quiero tener la barra de navegación en cada página. Así que hice un componente de barra de navegación y lo agregué a cada página nueva. En la página principal, la barra de navegación funciona bien desplazándose a la sección seleccionada. Sin embargo, en cualquier otra página, la barra de navegación no puede desplazarse a esa sección porque no se encuentra. Entonces mi pregunta es, ¿cómo puedo hacer clic en la barra de navegación para redirigir a la página principal y LUEGO desplazarme a un elemento?

Aquí está el código simplificado.

Código de barra de navegación

 export default function navbar(){ return( <div className="nav-container"> <nav> <ul className="desktop-nav"> <li> <a className="link-logo" onClick = {() => {scrollTo('landing-page')}} /> </li> <li> <a onClick = {() => {scrollTo('elem1')}}>elem1</a> </li> <li> <a onClick = {() => {scrollTo('elem2')}}>elem2</a> </li> <li> <a onClick = {() => {scrollTo('elem3')}}>elem3</a> </li> </ul> </nav> </div> ); } function scrollTo(elem){ document.getElementById(elem).scrollIntoView(true); }

Código de la página principal

 export default function Home(){ return( <div> <div id = 'elem1'>elem1</div> <div id = 'elem2'>elem2</div> <div id = 'elem3'>elem3</div> <a href = '/somewhere'> Go to Second Page </a> </div> ); }

enrutador de aplicaciones


 function App() { return ( <Router> <Switch> <Route exact path = '/' component = {SITE} /> <Route exact path = '/somewhere' component = {SECOND_PAGE}/> </Switch> </Router> ); } export default App;

Ahora, desde el componente SECOND_PAGE que se muestra como una página separada, ¿cómo puedo hacer que los enlaces de la barra de navegación vayan al componente SITE y se desplacen al enlace especificado sin agregar nada a la URL? No quiero que los usuarios puedan ver mis ID de div y nombres de clase si es posible. Quiero que la URL sea estática mientras navego por esos dos componentes.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sugiero agregar react-router-hash-link a su proyecto para permitir vincular/navegar a una página y desplazarse para ver una sección específica por atributo de id .

Ejemplo usando tu código:

 import { Link, Switch, Route } from "react-router-dom"; import { HashLink } from "react-router-hash-link"; const NavBar = () => ( <div className="nav-container"> <nav> <ul className="desktop-nav"> <li> <HashLink smooth to="/#"> Home </HashLink> </li> <li> <HashLink smooth to="/#elem1"> elem1 </HashLink> </li> <li> <HashLink smooth to="/#elem2"> elem2 </HashLink> </li> <li> <HashLink smooth to="/#elem3"> elem3 </HashLink> </li> </ul> </nav> </div> ); const Home = () => { return ( <div> <div className="section" id="elem1"> elem1 </div> <div className="section" id="elem2"> elem2 </div> <div className="section" id="elem3"> elem3 </div> <Link to="/somewhere"> Go to Second Page </Link> </div> ); }; const SecondPage = () => <h1>Second Page</h1>; export default function App() { return ( <div className="App"> <NavBar /> <Switch> <Route path="/somewhere" component={SecondPage} /> <Route path="/" component={Home} /> </Switch> </div> ); }

Edite cómo usar una barra de navegación en la aplicación React para redirigir a una página y luego desplazarse a un elemento

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