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

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

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 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!