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

184
Vistas
¿Qué está pasando con useState de React?

Así que aquí hay un fragmento de código para onClick EventHandler en React

código:

 function handleChange(event) { console.log('before 1st update') setCount(prevCount => { console.log('inside 1st update') return prevCount + 1 }) console.log('After 1st update') setCount(prevCount => { console.log('inside 2nd update') return prevCount + 1 }) console.log('After 2nd update')}

Producción :

antes de la 1.ª actualización
dentro de la primera actualización
Después de la 1.ª actualización
Después de la segunda actualización
dentro de la segunda actualización

Rendimiento esperado :

antes de la 1.ª actualización
dentro de la primera actualización
Después de la 1.ª actualización
dentro de la segunda actualización
Después de la segunda actualización

¿Alguien podría explicar? Además, el ejemplo proporciona evidencia suficientemente decente de que la función de actualización es síncrona y la actualización es asíncrona (en el caso de los eventos del navegador).

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

0

setState en React actúa como una función asíncrona.
Por lo tanto, colocar un console.log(state) justo después de configurarlo probablemente mostrará el valor anterior, ya que en realidad no termina de actualizar el estado hasta que se ejecuta el comando de registro.
Lo que podemos hacer para actuar sobre un cambio en el estado es usar el useEffect incorporado de React que tiene el estado relevante como una dependencia para verificar el valor.

Ejemplo:

 useEffect(() => { console.log(state); }, [state]);

Básicamente, la función de devolución de llamada del ejemplo se ejecutará cada vez que cambie el estado.

En tu caso, debería verse así:

 function handleChange(event) { console.log('before 1st update') setCount(prevCount => { console.log('inside 1st update') return prevCount + 1 }) setCount(prevCount => { console.log('inside 2nd update') return prevCount + 1 }) } useEffect(() => { console.log('count has been updated:', count) }, [count])

El resto de los registros son válidos.

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