1
resposta

Route com o path='*', abre uma pagina em branco apenas com o que voce colocou no element={} ???

No meu codigo, o que coloquei dentro do element={<div> pagina não encontrada</div>} ele ficou no top da pagina e independente da /qualquercoisa que for procurar ele fica la sempre , é como se ele fizesse parte do conteudo do <nav>

1 resposta

Oi Letícia, tudo bem?

Vi que você já finalizou o curso, mas irei te dar dicas sobre o que faze.

Entendo que você está tendo problemas com a rota path='*' no React Router. A rota path='*' é comumente usada para tratar rotas não existentes, apresentando uma página de erro 404, por exemplo.

Pelo que você descreveu, parece que o conteúdo que você colocou no element={} está sempre sendo exibido, independente da rota acessada. Isso pode estar acontecendo devido à ordem das suas rotas. No React Router v6, a ordem das rotas importa. As rotas são verificadas de cima para baixo, e a primeira que corresponder ao caminho atual será renderizada.

Portanto, a rota path='*' deve ser a última na lista de rotas dentro do componente Routes. Isso porque ela corresponde a qualquer caminho, então, se estiver no topo da lista, será sempre a primeira a corresponder, e seu conteúdo será sempre renderizado.

Aqui está um exemplo de como deveria ser:

<Routes>
  <Route path="/" element={<HomePage />} />
  <Route path="/about" element={<AboutPage />} />
  <Route path="*" element={<div>pagina não encontrada</div>} />
</Routes>

Neste exemplo, se o caminho for '/', a HomePage será renderizada. Se for '/about', a AboutPage será renderizada. Para qualquer outro caminho, o conteúdo 'pagina não encontrada' será renderizado, pois a rota path='*' é a última na lista.

Espero ter ajudado.

Um abraço e bons estudos.