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

118
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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