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

76
Vistas
Asegurarse de que el enlace de conjunto de React se ejecute sincrónicamente en orden

Tengo un estado de reacción que contiene una serie de objetos que se ven así {ID: 7, LicenseNumber: 'Testing123', LicenseCreator: 7, added: true}

Para manipular los valores individuales de este objeto, he preparado una función que se ve así:

 const updateLicenseInfo = (index, licenseInfoKey, licenseInfoVal) => { const foundLicenseInfo = { ...licenseInfo[index] }; const licenseInfoItems = [...licenseInfo]; foundLicenseInfo[licenseInfoKey] = licenseInfoVal; licenseInfoItems[index] = foundLicenseInfo; setLicenseInfo([...licenseInfoItems]); };

Mi problema es que cuando ejecuto esta función dos veces seguidas, creo que la naturaleza asíncrona de los ganchos solo hace que se ejecute la última función.

Por ejemplo, cuando realizo una llamada a la API y luego trato de actualizar la ID, el campo agregado, la ID será nula pero la agregada habrá cambiado. Aquí está ese ejemplo:

 postData('/api/licenseInfo/createLicenseInfoAndCreateRelationship', { LicenseNumber, RequestLineItemID: procurementLine.ID }) .then((res) => res.json()) .then((r) => { updateLicenseInfo(licenseIndex, 'ID', r.ID); updateLicenseInfo(licenseIndex, 'added', true); })

¿Cómo puedo asegurarme de que esta función se ejecute y luego la siguiente función se ejecute sincrónicamente?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Qué tal refactorizar su función inicial para tomar una matriz de objetos como parámetros, algo con la estructura {key: "", val: ""} y luego iterar sobre esa matriz en su función, agregando todos los valores a las claves emparejadas y llamando setState solo una vez, con todos los cambios nuevos

 const updateLicenseInfo = (index, pairs) => { const foundLicenseInfo = { ...licenseInfo[index] }; const licenseInfoItems = [...licenseInfo]; pairs.forEach((pair)=>{ foundLicenseInfo[pair.key] = pair.value; }); licenseInfoItems[index] = foundLicenseInfo; setLicenseInfo([...licenseInfoItems]); };

y llamado así

 updateLicenseInfo(licenseIndex, [{key:'ID', value:r.ID}, {key:'added', value:true}]);
about 4 years ago · Juan Pablo Isaza Denunciar
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