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

135
Visualizações
Reaccionar useEffect no se activa en la redirección

tengo una función llamada inicio de sesión que redirige al usuario a la página principal si todo estaba bien. Luego, en la página principal, quiero obtener información del usuario con useEffect usando el token que se almacenó cuando el usuario inició sesión, pero no pasa nada. Solo cuando actualizo la página obtengo los datos.

función de inicio de sesión

 export const login = ({ email, password, history }) => { return async (dispatch) => { try { const response = await fetch("http://localhost:5000/api/login", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ email, password, }), }); const data = await response.json(); if (data.status === 200) { localStorage.setItem("userToken", data.user); history.push("/"); } else { dispatch( setNotification({ variant: "error", message: data.message, }) ); } } catch (e) { console.log(e.message); } }; };

recuperar la función de usuario

 export const fetchUser = () => { return async (dispatch) => { try { const response = await fetch("http://localhost:5000/userInfo", { headers: { "x-access-token": localStorage.getItem("userToken"), }, }); const data = await response.json(); dispatch(setUser({ id: data.id, fullname: data.fullname, email: data.email })) } catch (error) {} }; };

useEffect en mi página principal

 useEffect(() => { dispatch(fetchUser()); }, []);

función de fondo

 module.exports.getCurrentUser = async (req, res) => { const token = req.headers["x-access-token"]; try { const verifyToken = jwt.verify(token, "123"); const user = await User.findOne({ email: verifyToken.email }); return res.json({ id: user._id, fullname: user.fullname, email: user.email }) } catch (error) {} };
about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

El segundo parámetro de useEffect le indica cuándo debe ejecutarse. Solo se ejecuta si uno de los valores de la matriz ha cambiado. Dado que pasa una matriz vacía, ninguno de los valores en ella ha cambiado.

Esto supone que su aplicación probablemente comience en '/', luego detecta que no hay ningún usuario, por lo que cambia a la pantalla de inicio de sesión. Cuando vuelve a la raíz, solo ejecuta useEffect si algo en la matriz ha cambiado desde el renderizado anterior.

Tal como está, isMounted no tiene mucho sentido. Esto podría ser simplemente:

 useEffect(() => { dispatch(fetchUser()); });
about 4 years ago · Santiago Gelvez Relatório

0

Está llamando a setUser , pero ¿qué está llamando a su función de inicio de sesión?

about 4 years ago · Santiago Gelvez 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