Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

125
Vistas
El enrutamiento anidado que usa rutas protegidas no funciona correctamente

anteriormente publiqué una pregunta similar: el método para verificar que el administrador me está redirigiendo a la página principal cuando intento iniciar sesión

Traté de implementar la ruta protegida, dentro de protectRoute.tsx:

 import { Navigate, Outlet } from "react-router"; import { RootStateOrAny, useSelector } from "react-redux"; interface ProtectRouteProps {} export default function ProtectRoute(props: ProtectRouteProps) { const userSignin = useSelector((state: RootStateOrAny) => state.userSignin); const { userInfo } = userSignin; return userInfo?.user?.isAdmin ? <Outlet /> : <Navigate to='/' />; }

Realmente no sé qué es ProtectRouteProps y qué debo poner en él. También en la parte de enrutamiento hice como me dijo:

 <Route path='/createItem' element={<ProtectRoute />} /> <Route path='/createItem' element={<CreateItem />} />

El problema ahora es que no se puede acceder a CreateItem porque va a la página ProtectRoute que está vacía. ¿Qué tengo que hacer?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Realmente no sé qué es ProtectRouteProps y qué debo poner en él.

No hay accesorios. Esto es claro por el uso:

 <Route path='/createItem' element={<ProtectRoute />} />

No se pasan accesorios a ProtectRoute . Puedes soltar el objeto props:

 import { Navigate, Outlet } from "react-router"; import { RootStateOrAny, useSelector } from "react-redux"; export default function ProtectRoute() { const userSignin = useSelector((state: RootStateOrAny) => state.userSignin); const { userInfo } = userSignin; return userInfo?.user?.isAdmin ? <Outlet /> : <Navigate to='/' replace />; }

El problema ahora es que no se puede acceder a CreateItem porque va a la página ProtectRoute que está vacía. ¿Qué tengo que hacer?

Las rutas de "autenticación" son las llamadas rutas de diseño . Aplican algo de lógica, tal vez algún CSS de diseño con estilo, y representan un Outlet para que se representen los componentes de Route anidados. Los componentes de Route anidados utilizan la propiedad de path para la coincidencia de ruta.

Ejemplo:

 <Route element={<ProtectRoute />}> <Route path='/createItem' element={<CreateItem />} /> ... other protected routes ... </Route>
about 4 years ago · Juan Pablo Isaza Denunciar

0

 <Route exact path='/Login' element={<Login name="Login Page"></Login>}></Route> <Route element={<Protected/>}> <Route exact path='/' element={<Home/> }></Route> <Route exact path='/Content' element={<Content />}></Route> </Route> <Route path='*' element={<Login/>} ></Route> </Routes>

Crear Protected.js

 import { Navigate, Outlet } from 'react-router-dom'; const useAuth = ()=>{ if(localStorage.getItem("isLogged")){ const user = {loggedIN :true}; return user && user.loggedIN }else{ const user = {loggedIN :false}; return user && user.loggedIN } } const Protected = () => { const isAuth = useAuth(); return isAuth ? <Outlet/>:<Navigate to={"/login"}/> } export default Protected
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda