Estoy llamando a la función setState tantas veces seguidas (presionando el botón hacia abajo). pero el problema es que reaccionar js deja de actualizar el estado después de algunas actualizaciones (40-50 veces). Estoy aumentando el valor vendido en uno con cada clic.
Quiero saber si es el comportamiento normal de reaccionar js? o me estoy perdiendo algo?
axios.put(`http://localhost:5000/soldUpdate`,item) .then(res => { const {quantity,sold,...rest} = item; const newQuantity = parseInt(quantity)-1; const newSold = parseInt(sold)+1; if(res.status===200){ setItem({...rest,quantity:newQuantity,sold:newSold}) } else { console.log("not updated!"); }
Después de demasiados clics seguidos, la API a la que llama puede bloquear su solicitud. En ese caso, no obtendrá ninguna respuesta, sino un error, por lo que no se llamará a .then()
. Esa es probablemente la razón por la que su estado no está cambiando. La mejor forma de comprobar si la API responde con un error es mediante .catch()
.
Además, consulte los documentos oficiales de Axios sobre el manejo de errores.