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

125
Visualizações
No se puede encontrar la diferencia entre dos tipos de actualizaciones de estado con matrices

Por lo general, veo este tipo de actualización de estado (esto es solo un ejemplo):

 const NumArray = () => { const [numbers, setNumbers] = useState([]) return ( <div> <p>Numbers:[ {numbers} ]</p> ///////////////////// <button onClick={() => setNumbers(prevState => [...prevState, 1])}> ///////////////////// Click me </button> </div> ) }

Pero si uso esta variación, todavía funciona:

 const NumArray = () => { const [numbers, setNumbers] = useState([]) return ( <div> <p>Numbers:[ {numbers} ]</p> ///////////////////// <button onClick={() => setNumbers([...numbers, 1])}> ///////////////////// Click me </button> </div> ) }

Mi pregunta es, ¿cuál es la diferencia entre las dos actualizaciones de estado? ¿Por qué la gente tiende a usar el que tiene la devolución de llamada?

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

0

useState es asíncrono. No actualiza el estado inmediatamente, pero tiene una cola que se usa para actualizar el objeto de estado. Esto se hace para mejorar el rendimiento de la representación de los componentes de React.

Aunque es asíncrona, la función useState no devuelve promesa. Por lo tanto, no podemos adjuntarle un controlador then o usar async/await para obtener los valores de estado actualizados. Y si tenemos algunas variables de estado que deben actualizarse de acuerdo con otra variable de estado, no podemos confiar en la variable de estado actualizada sincrónicamente.

La actualización de estado generalmente ocurre en el siguiente renderizado, pero incluso eso puede variar. Las actualizaciones por lotes dependen de la reacción, y no hay nada que podamos hacer para cambiar eso.

Así que escribiéndolo así:

 <button onClick={() => setNumbers(prevState => [...prevState, 1])}>

garantiza que prevState es en realidad un estado anterior. Mientras que al escribirlo sin devolución de llamada, no nos importa mucho si es el estado anterior exacto o no.

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