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

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

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