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

1.2K
Visualizações
Error: useHref() solo se puede usar en el contexto de un componente <Router>. Funciona cuando pongo directamente la url como localhost:3000/experiencias

Tengo una barra de navegación que se representa en cada ruta mientras la ruta cambia al hacer clic.

./components/navbar.jsx

 import React, { Component } from 'react'; import '../App.css'; import { Link } from 'react-router-dom'; class Navbar extends Component { constructor(props) { super(props); this.state = {}; } render() { return ( <div id = 'navbar'> <div className='name-head'> My Name </div> <div id = 'nav-links-container'> <Link to='/experiences'> <div className = 'nav-links'> Experiences </div> </Link> <div className = 'nav-links'> Projects </div> <div className = 'nav-links'> Skills </div> <div className = 'nav-links'> Resume </div> </div> </div> ); } } export default Navbar;

./componentes/experiencias.jsx

 import React, { Component } from 'react'; class Experiences extends Component { render() { return ( <div> <h1>hi</h1> </div> ); } } export default Experiences;

índice.js

 import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import reportWebVitals from './reportWebVitals'; import Navbar from './components/Navbar'; import Home from './components/Home'; import Experiences from './components/experience'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; ReactDOM.render( <React.StrictMode> <Navbar /> <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/experiences" element={<Experiences />} /> </Routes> </Router> </React.StrictMode>, document.getElementById('root') ); reportWebVitals();

El error no aparece cuando elimino <Link> de la etiqueta de experiencias en la barra de navegación. Hay una pregunta similar publicada aquí: Error: useHref() puede usarse solo en el contexto de un componente <Router> pero no ayuda.

estoy usando reaccionar enrutador v6

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Envuelva la barra de navegación con BrowserRouter

 import { BrowserRouter, Routes, Route } from "react-router-dom"; <BrowserRouter> <AppNavBar /> <Routes> <Route path="/" element={<Home />} /> <Route path="/wall" element={<WallPost />} /> </Routes> </BrowserRouter>
over 4 years ago · Santiago Trujillo Relatório

0

Los enlaces están dentro de la barra de navegación y la barra de navegación está fuera del enrutador => los enlaces están fuera del enrutador => el enrutador no administrará los enlaces

Solución

Mueva la barra de navegación a la sección del enrutador. Ejemplo:

 <Router> <Navbar /> // <=========== <Routes> <Route /> <Route /> </Routes> </Router>
over 4 years ago · Santiago Trujillo Relatório

0

Asunto

Está representando la barra de navegación fuera del contexto de enrutamiento. El Router no sabe qué rutas están tratando de vincular los enlaces que está administrando. La razón por la que el enrutamiento funciona cuando se navega directamente a "/experiences" es porque el Router reconoce la URL cuando se monta la aplicación.

 <Navbar /> // <-- outside router!! <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/experiences" element={<Experiences />} /> </Routes> </Router>

Solución

Muévalo dentro del contexto de enrutamiento para que el Router sea consciente y pueda administrar el enrutamiento correctamente.

 <Router> <Navbar /> <Routes> <Route path="/" element={<Home />} /> <Route path="/experiences" element={<Experiences />} /> </Routes> </Router>
over 4 years ago · Santiago Trujillo Relatório

0

Si aún tiene problemas con este, es porque react-router-dom se basa en el contexto de React para funcionar cuando intente realizar una prueba unitaria. Esto hace que <Link /> o <Route /> queden obsoletos.
Intente leer la documentación react-router-dom .

En lugar de usar

 render(<Example />)

que tienen o en él, puedes probar

 render(<MemoryRouter> <Example /> </MemoryRouter>)

Espero que esto resuelva tu problema

over 4 years ago · Santiago Trujillo Relatório

0

en React Route v6 puede resolver esto dando el contexto de la ruta a toda su aplicación con < BrowserRouter >

Este es un ejemplo completo de index.js

 import React from 'react'; import ReactDOM from 'react-dom'; import { BrowserRouter } from 'react-router-dom'; import { App } from './components/App/App.jsx'; ReactDOM.render( <React.StrictMode> <BrowserRouter> //that is the key <App /> </BrowserRouter> </React.StrictMode>, document.getElementById('root') );
over 4 years ago · Santiago Trujillo 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