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

686
Visualizações
React Router V6 - Error: useRoutes() solo se puede usar en el contexto de un componente <Router>

He instalado react-router-dom V6-beta. Siguiendo el ejemplo de un sitio web, puedo usar la nueva opción useRoutes . Tengo rutas de página de configuración y las devuelvo en el archivo App.js

Después de guardar me sale el siguiente error:

Error: useRoutes() solo se puede usar en el contexto de un componente.

Me pregunto si me estoy perdiendo algo aquí. He creado las páginas dentro de la carpeta src/pages .

Mi código:

 import { BrowserRouter, Link, Outlet, useRoutes } from 'react-router-dom'; // Pages import Home from './pages/Home'; import About from './pages/About'; import Services from './pages/Services'; import Gallery from './pages/Gallery'; import Prices from './pages/Prices'; import Contact from './pages/Contact'; const App = () => { const routes = useRoutes([ { path: '/', element: <Home /> }, { path: 'o-nama', element: <About /> }, { path: 'usluge', element: <Services /> }, { path: 'galerija', element: <Gallery /> }, { path: 'cjenovnik', element: <Prices /> }, { path: 'kontakt', element: <Contact /> } ]); return routes; }; export default App;
over 4 years ago · Santiago Trujillo
7 Respostas
Responde à pergunta

0

Creo que el problema es que aún necesita envolver routes ( Routes / useRoutes ) dentro de un elemento de Router .

Así que un ejemplo se parece a esto:

 import React from "react"; import { BrowserRouter as Router, Routes, Route, useRoutes, } from "react-router-dom"; const Component1 = () => { return <h1>Component 1</h1>; }; const Component2 = () => { return <h1>Component 2</h1>; }; const App = () => { let routes = useRoutes([ { path: "/", element: <Component1 /> }, { path: "component2", element: <Component2 /> }, // ... ]); return routes; }; const AppWrapper = () => { return ( <Router> <App /> </Router> ); }; export default AppWrapper;

Refactoriza según tus necesidades.

over 4 years ago · Santiago Trujillo Relatório

0

Mencione el siguiente código en index.js

 import { BrowserRouter as Router } from "react-router-dom";
over 4 years ago · Santiago Trujillo Relatório

0

significa en Your index js O App JS wrap con BrowserRouter como este

 import { BrowserRouter } from 'react-router-dom'; ReactDOM.render( <React.StrictMode> <Provider store={store}> <BrowserRouter> // Like This here I am using <App /> </BrowserRouter> </Provider> </React.StrictMode>, document.getElementById("root"), );
over 4 years ago · Santiago Trujillo Relatório

0

Debería tener un <BrowserRouter> (o cualquiera de los enrutadores proporcionados ) más arriba en el árbol. La razón de esto es que <BrowserRouter> proporciona un contexto de historial que se necesita en el momento en que se crean las rutas usando useRoutes() . Tenga en cuenta que más arriba significa que no puede estar en la <App> en sí, pero al menos en el componente que la representa.

Así es como podría verse su punto de entrada:

 import ReactDOM from 'react-dom'; import { BrowserRouter } from 'react-router-dom'; ReactDOM.render( <BrowserRouter> <App /> </BrowserRouter>, document.getElementById('root'), );
over 4 years ago · Santiago Trujillo Relatório

0

Código: index.js

 import {BrowserRouter as Router} from "react-router-dom"; ReactDOM.render( <React.StrictMode> <Router> <App /> </Router> </React.StrictMode>, document.getElementById("root") );

aplicación.js

 function App() { return ( <> <Routes> <Route path ="/" element={<Main />} /> <Route path ="gigs" element={<Gigs />} /> </Routes> </> ); }
over 4 years ago · Santiago Trujillo Relatório

0

> Following codes works since react-router-dom syntax changed because of React 18. import logo from './logo.svg'; import './App.css'; import Header from './components/Header'; import Login from './components/Login'; import { BrowserRouter as Router, Routes, Route, useRoutes, } from 'react-router-dom'; import Signup from './components/Signup'; function AppRoutes() { const routes = useRoutes( [ {path:'/',element:<Login/>}, {path:'/signup',element:<Signup/>} ] ) return routes; } function App(){ return ( <Router> <Header/> <AppRoutes /> </Router> ) } export default App;
over 4 years ago · Santiago Trujillo Relatório

0

Solo quiero informar sobre un problema similar: al momento de escribir (v6.2.1), parece que también encuentra este error si está importando desde react-router en lugar de react-router-dom . Un error tipográfico costoso de mi parte.

Es decir, asegúrese de importar Routes y Route desde react-router-dom y NO react-router

 // This is deceptively valid as the components exist, but is not the intended usage import { Routes, Route } from 'react-router'; // This works and is the intended usage import { Routes, Route } from 'react-router-dom';
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