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

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

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