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

130
Visualizações
Confusión con cómo funciona setState

Estoy confundido con cómo funciona setState.

Aquí hay una parte de mi código:

 handleBarsChange(value) { this.setState({numberOfbars: value}); this.resetArray(); }

aparentemente, cuando la función resetArray() se ejecuta e intenta acceder a la variable de estado this.state.numberOfbars , setState aún no ha actualizado el valor.

Quiero alguna explicación sobre cómo y dónde se debe ejecutar setState y cuándo puedo esperar ver el cambio.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

setState es asíncrono. Tiene un segundo argumento de devolución de llamada que se puede usar para ejecutar código después de una transición de estado. Este no siempre es el mejor enfoque, pero con el ejemplo muy limitado proporcionado, es difícil decirlo.

 this.setState({numberOfBars: value}, () => { this.resetArray() })

De los documentos de reacción:

El segundo parámetro de setState() es una función de devolución de llamada opcional que se ejecutará una vez que se complete setState y se vuelva a representar el componente. En general, recomendamos usar componentDidUpdate() para dicha lógica en su lugar.

https://reactjs.org/docs/react-component.html#setstate

about 4 years ago · Juan Pablo Isaza Relatório

0

El hecho es que la función setState() es asíncrona, por lo que incluso si ejecuta el código después de llamarlo, es posible que algunos estados aún no se actualicen.

La solución es implementar una devolución de llamada cuando el estado se actualizó correctamente ( setState(<state>, <callback>) ), por ejemplo:

 handleBarsChange(value){ this.setState({numberOfbars: value}, () => { this.resetArray(); }); }
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