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

196
Views
Redirigir usando el estado a través de React-Router-Dom

Estoy revisando los tutoriales de React-Redux Toolkit y he configurado la autenticación (parcialmente). Me gustaría agregar una redirección en la autenticación.

Estoy usando "react-router-dom": "^6.2.1",

En mi LoginForm.js , estoy tratando de redirigir usando Redirect by react-router-dom :

 import React, { useState } from "react"; import { Link, Redirect } from "react-router-dom"; import { useDispatch, useSelector } from "react-redux"; import { loginUser } from "../../features/auth/authSlice"; export default function LoginForm() { const dispatch = useDispatch(); const auth = useSelector((state) => state.auth); const [userInput, setUserInput] = useState({ username: "", password: "", }); const onChangeHandler = (e) => { setUserInput((prevState) => { return { ...prevState, [e.target.id]: e.target.value }; }); }; const onSubmitHandler = (e) => { e.preventDefault(); dispatch(loginUser(userInput)); }; if (auth.isAuthenticated) { return <Redirect to="/" />; // this line of code causes the error }

Consola:

Error no capturado (en promesa): el tipo de elemento no es válido: esperaba una cadena (para componentes integrados) o una clase/función (para componentes compuestos) pero obtuvo: indefinido. Probablemente olvidó exportar su componente desde el archivo en el que está definido, o puede haber mezclado las importaciones predeterminadas y con nombre.

Cuando cambio el código a esto, se registra true :

 if (auth.isAuthenticated) { console.log(auth.isAuthenticated) }

No entiendo lo que dice el error. ¿Alguien podría explicarme para poder solucionarlo?

EDITAR : cuando intento usar la Redirect sin otro código en el formulario, también da el mismo error.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Encontré otra publicación en la que usaban Navigate en lugar de Redirect . Por lo tanto cambié:

 if (auth.isAuthenticated) { return <Redirect to="/" />; }

A:

 if (auth.isAuthenticated) { return <Navigate to="/" />; }

Y empezó a funcionar.

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!