Estoy tratando de enviar el nuevo elemento, o establecer Estado en React, después de hacer clic en el objetivo. Console.log the event.target y devolvió lo que esperaba. Sin embargo, no se agrega a la matriz inmediatamente. Solo después del siguiente clic, la matriz se actualiza, lo que significa que, por ejemplo, después de hacer clic 10 veces, la matriz solo tiene 9 elementos sin el último que hice clic. Y luego se agregaría el décimo después de hacer clic nuevamente. ¡Agradezco la ayuda!
const [clickedArray, setClickedArray] = useState([]) const handleClick = (e) => { const clicked = e.target.alt console.log(clicked) setClickedArray(clickedArray => [...clickedArray,clicked]) console.log(clickedArray) if(hasDuplicates(clickedArray)){ alert('over') setScore(0) setClickedArray([]) if(score > highScore){ setHighScroe(score) } } else{ setScore(clickedArray.length) } }No confiar en el estado que acaba de cambiar es la solución.
const [clickedArray, setClickedArray] = useState([]) const handleClick = (e) => { const clicked = e.target.alt const newArray = [...clickedArray,clicked] if(hasDuplicates(newArray)){ alert('over') setScore(0) setClickedArray([]) if(score > highScore){ setHighScroe(score) } } else{ setClickedArray(newArray) setScore(clickedArray.length) } }