Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

256
Views
Cómo redirigir a la página de inicio si el usuario ha iniciado sesión en reactjs react-router-dom v6

Quiero restringir algunas rutas si mi usuario está conectado, si el usuario está conectado e intenta ir a /login , lo redirigirá a la página de inicio; de lo contrario, lo redirigirá a la página de inicio de sesión.

Estoy usando la API de Laravel con reactjs. Sin embargo, cuando trato de lograr lo que necesito, no funciona y me da este error "Uncaught Error: [Navigate] is not a <Route> component"

Intenté usar <Redirect/> pero se reemplaza en react-router-dom v6

Esto es lo que probé.

 import { BrowserRouter as Router, Route, Routes, Navigate} from "react-router-dom"; import Login from "./Login"; <Router> <Routes> <Route path="/" element={<Main/>}/> <Route path="/login"> {localStorage.getItem("auth_token") ? <Navigate to="/"/> : <Route path="/login" element={<Login/>}/>} </Route> <Route path="/login"> {localStorage.getItem("auth_token") ? <Navigate to="/"/> : <Route path="/register" element={<Register/>}/>} </Route> {/* <Route path="/login" element={<Login/>}/> <Route path="/register" element={<Register/>}/> */} </Routes> </Router>

EDITAR:

Esto es lo que probé en base a algunas otras preguntas de stackoverflow, todavía no se redirige a la página de inicio de sesión si el usuario no ha iniciado sesión y no se encuentra el token de autenticación.

 <Route path="/login" element={localStorage.getItem("auth_token") ? <Navigate to="/" /> : <Login/>}/>
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Tal vez, puede ingresar a su componente principal y escribir esta línea de código. Ahora no sé cómo está extrayendo los datos, ya sea que el usuario haya iniciado sesión o no, pero tuve una situación similar y usé almacenamiento local para verificar si el usuario ha iniciado sesión o no

 if(!loggedInUser) { return <Navigate to="/login" /> }
about 4 years ago · Juan Pablo Isaza Report

0

Vaya a Login.js, luego

 ***import { useNavigate } from "react-router-dom"*** const Login = () => { ***const navigate = useNavigate() if(localStorage.getItem("auth_token")) { navigate('/') }***

}

about 4 years ago · Juan Pablo Isaza Report

0

Debe utilizar en este caso.

 <Route exact path="/login"> {localStorage.getItem("auth_token") ? <Redirect to="/" /> : <Route path="/login" element={<Login />}/>} </Route>

Me alegro de responderte, espero que te ayude!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!