TransWikia.com

Quando uso o ele da esse erro de route, o que pode ser?

Stack Overflow em Português Asked by Anderson Leite on December 19, 2021


Esse é o erro quando vou usar o 
Error: Invariant failed: You should not use  outside a

Já reinstalei o React-Router-Dom, e não consigo resolver.


 import React from 'react';
 import {BrowserRouter, Route, Switch} from 'react-router-dom';

 import Home from './pages/Home/index';
 import AboutUs from './pages/AboutUs/index';

 export default function Routes(){


return(

    <BrowserRouter>
    
        <Switch>
            <Route path="/" exact component={Home}/>
            <Route path="/" component={AboutUs}/>
        </Switch>

    </BrowserRouter>

);

}

2 Answers

No seu código exemplo, não tem nenhum <Link>, julgo que você está colocando o <Link> fora do <BrowserRouter> e isso não é permitido, como está na documentação e no código da documentação já mostra esse porém, ou seja, o <Link> tem que estar dentro de <BrowserRouter>, exemplo:

import React from "react";
import {
  BrowserRouter as Router,
  Switch,
  Route,
  Link
} from "react-router-dom";

export default function App() {
  return (
    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/about">About</Link>
            </li>
            <li>
              <Link to="/users">Users</Link>
            </li>
          </ul>
        </nav>

        {/* A <Switch> looks through its children <Route>s and
            renders the first one that matches the current URL. */}
        <Switch>
          <Route path="/about">
            <About />
          </Route>
          <Route path="/users">
            <Users />
          </Route>
          <Route path="/">
            <Home />
          </Route>
        </Switch>
      </div>
    </Router>
  );
}

function Home() {
  return <h2>Home</h2>;
}

function About() {
  return <h2>About</h2>;
}

function Users() {
  return <h2>Users</h2>;
}

Direitos do código site link: https://reactrouter.com/web/guides/quick-start

e é assim que deve ser feito.

Answered by novic on December 19, 2021

Seu path para os dois está apontando para a mesa rota, tente trocar isso, e veja como está usando o Link nas paginas

<BrowserRouter>
        <Switch>
            <Route path="/" exact component={Home}/>
            <Route path="/about" component={AboutUs}/>
        </Switch>
    </BrowserRouter>

Answered by Gustavo Benevenuto on December 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP