Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

93
Vistas
Almacenar el nombre del usuario actual y el usuario coincidente en estado usando useEffect devolviendo una salida incorrecta

Tengo una función en mi contexto que toma dos puntos de datos, el nombre de usuario actual y el nombre de usuario de un usuario seleccionado al azar que está en línea.

 const pairProgrammingMatching = (username, matchedUser) => { setPairUsers({username: matchedUser }) }

Llamo a esta función en otro componente usando useEffect()

 useEffect((() => { console.log('curr username is', username) pairProgrammingMatching(username, checkOnlineUsers(pickRandom()).username) console.log('inside pairUsers state', pairUsers) }), [])

checkOnlineUsers simplemente devuelve una lista de todos los usuarios que están actualmente en línea y activos

 let checkOnlineUsers = () => { const results = onlineUsers.filter(obj => { return obj.profile.is_online === true && obj.profile.currently_active === false && obj.username !== user.username }) return results }

Aquí hay una muestra de lo que devuelve esta función.

 [{ email: "***@gmail.com" first_name: "" last_name: "" profile: {city: 'Washington DC', country: 'USA', is_online: true, currently_active: false} username: "testingUser" }]

pickRandom simplemente elige un número entre 0 y n, siendo n el número de usuarios devueltos en checkOnlineUsers :

 const pickRandom = () => { return Math.round(Math.random()*onlineUsers.length) }

El problema aquí es que si imprimo pairUsers dentro de mi useEffect espero ver esto:

 { 'userA': 'testingUser' }

siendo userA el nombre del usuario actual. Sin embargo, esto es lo que obtengo:

 {username: undefined}
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda