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

176
Visualizações
Gestión de estado de React: renderizaciones con useEffect

Ok para explicar mi problema en breve. Estaba siguiendo un tutorial de piedra, papel o tijera, pero cuando lo terminé, comencé a implementar cosas por mi cuenta. No soy nuevo en React, pero también tengo mucho que aprender todavía. Quiero entender completamente la gestión estatal. Una explicación rápida:

Este es un juego de piedra, papel o tijera, en el que el usuario puede hacer clic en los botones que representan la piedra, el papel y la tijera, y el mismo botón que recibe la entrada del usuario, también genera una selección aleatoria de computadora entre esos 3. (función handleClick)

Luego tengo un useEffect que compara la elección del usuario y la computadora, y luego aumento los puntos del usuario o la computadora en 1, a quien haya ganado esa ronda. Cuando los puntos de cualquiera de ellos llegan a 5, el juego termina y aparece un botón de reinicio.

Y ahora mi problema:

Cuando agrego la lógica condicional en el useEffect que ve si alguno de ellos alcanzó los 5 puntos, mi clic siempre está 1 detrás. Estoy configurando un estado para el fin del juego, que es falso en la carga de la aplicación y se establece en verdadero cuando se cumple la condición. Entonces, en este caso, llegará a 5, pero el botón de reinicio aparecerá en el próximo clic.

PERO, si agrego la lógica al JSX en su lugar, sin usar el estado, el botón de reinicio se muestra exactamente en la ronda 5, que es la forma correcta.

Ahora, investigué mucho, y sé que setState es asíncrono, y se evaluará en el próximo renderizado... pero no entiendo por qué lo hace si lo pongo en useEffect, que también tiene la dependencia matriz, que activará una nueva representación si cambia el estado. Incluso cuando pongo el 'gameOver' en la matriz de dependencia, todavía no funciona

Me falta información clave para poner todo el rompecabezas en su lugar.

Puedes encontrar el código aquí, no es muy largo.

https://www.codepile.net/pile/6PO6m8GN

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

0

si desea activar una nueva representación, puede usar la matriz de dependencia de useEffect. Por lo tanto, si desea activar useEffect cuando cambia la computadora o el punto de usuario, agréguelos dentro de su matriz de dependencia useEffect.

Este tipo lo explica perfectamente: https://www.youtube.com/watch?v=dH6i3GurZW8&t=1106s

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