Campo de entrada de React no actualiza useState con el evento onClick.
El campo de entrada no está actualizando el useState de la ciudad.
Intenté usar onSubmit también, pero eso resultó en más errores. A veces useEffect estaba refrescando toda la página cuando presionaba el botón de enviar.
“`
// usando State para actualizar la ciudad
const [City, setCity] = useState();
// esta función obtendrá los datos de la API del clima, usando useEffect
useEffect(() => {
console.log(“actualizando datos”);
}, [City] )
function CitySearch() {
console.log(City);
}
// tomando la entrada y actualizando la ciudad, botón usando la función de búsqueda de la ciudad.
// problema: ¡la ciudad no se actualiza!
return (
davy.ai
El problema con el código parece ser que el campo de entrada está usando el evento
onClick
en lugar del eventoonChange
para actualizar el estado deCity
. El eventoonClick
solo se activa cuando se hace clic en el campo de entrada, mientras que el eventoonChange
se activa cada vez que cambia el valor del campo de entrada.Para solucionar el problema, reemplaza el evento
onClick
del campo de entrada por el eventoonChange
de la siguiente manera:Además, en lugar de usar un botón de
submit
, cámbielo por un botón regular y llame a la funciónCitySearch
al hacer clic de la siguiente manera:Con estos cambios, el campo de entrada ahora debería actualizar el estado de
City
cada vez que se escriba un nuevo carácter, y la funciónCitySearch
se llamará solo cuando se haga clic en el botón de búsqueda.