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

165
Visualizações
¿Cómo redirigir en React Router v6?

Estoy intentando actualizar a React Router v6 ( react-router-dom 6.0.1 ).

Aquí está mi código actualizado:

 import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom'; <BrowserRouter> <Routes> <Route path="/" element={<Home />} /> <Route path="/lab" element={<Lab />} /> <Route render={() => <Navigate to="/" />} /> </Routes> </BrowserRouter>

La última Route está redirigiendo el resto de caminos a / .

Sin embargo, tengo un error.

TS2322: Escriba '{ renderizar: () => Elemento; }' no se puede asignar al tipo 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'. La propiedad 'render' no existe en el tipo 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'.

Sin embargo, según el documento , tiene render para Route . ¿Cómo usarlo correctamente?

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

0

Creo que deberías usar el enfoque de ruta sin coincidencias.

Compruebe esto en la documentación.

https://reactrouter.com/docs/en/v6/getting-started/tutorial#adding-a-no-match-route

 import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom'; <BrowserRouter> <Routes> <Route path="/" element={<Home />} /> <Route path="/lab" element={<Lab />} /> <Route path="*" element={<Navigate to="/" replace />} /> </Routes> </BrowserRouter>

Actualización - 18/03/2022

Para mantener limpio el historial, debe configurar replace prop. Esto evitará redireccionamientos adicionales después de que el usuario vuelva a hacer clic. Gracias @Paul por este consejo.

over 4 years ago · Santiago Trujillo Relatório

0

Cree el archivo RequireAuth.tsx

 import { useLocation, Navigate } from "react-router-dom"; import { useAuth } from "../hooks/Auth"; export function RequireAuth({ children }: { children: JSX.Element }) { let { user } = useAuth(); let location = useLocation(); if (!user) { return <Navigate to="/" state={{ from: location }} replace />; } else { return children; } }

Importe el componente para que el usuario necesite un enrutador privado:

 import { Routes as Switch, Route } from "react-router-dom"; import { RequireAuth } from "./RequireAuth"; import { SignIn } from "../pages/SignIn"; import { Dashboard } from "../pages/Dashboard"; export function Routes() { return ( <Switch> <Route path="/" element={<SignIn />} /> <Route path="/dashboard" element={ <RequireAuth> <Dashboard /> </RequireAuth> } /> </Switch> ); }
over 4 years ago · Santiago Trujillo Relatório

0

Encontré otra manera de hacer esto:

 import { useNavigate } from "react-router-dom"; let navigate = useNavigate(); useEffect(() => { if (LoggedIn){ return navigate("/"); } },[LoggedIn]);

https://reactrouter.com/docs/en/v6/getting-started/overview#navigation

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