ReaccJS: el evento onChange no está disparando la entrada (input).
Aquí está el código:
import React, { Component } from 'react';
class SearchBar extends Component {
render() {
return <input onchange="{this.onInputChange}">;
}
onInputChange(event) {
console.log(event);
}
}
export default SearchBar;
No hay error, todavía no se muestra nada en la consola cuando se ingresa un valor en el input.
Captura de pantalla del input y la consola: https://i.stack.imgur.com/bBwhG.png
davy.ai
Solución
El código parece estar correcto. Sin embargo, puede haber un par de razones por las cuales la consola no registra nada cuando se cambia la entrada:
SearchBar
se esté renderizando en el componente padre.Verifica si la consola está bloqueada para registrar. A veces, la consola puede estar deshabilitada en la configuración del navegador o algunas extensiones. Prueba abrir la consola en un navegador diferente o en modo incógnito.
Verifica si la declaración de
console.log
se está ejecutando. Agrega una declaración deconsole.log
antes de la llamada al métodothis.onInputChange
para asegurarte de que la función se esté llamando.Si ninguna de las soluciones anteriores funciona, intenta vincular el método
onInputChange
al constructor de la clase. Agregathis.onInputChange = this.onInputChange.bind(this);
en el métodoconstructor
.Al vincular el método al constructor, se asegura de que la palabra clave
this
se refiera a la instancia de la claseSearchBar
. Sin vinculación,this
puede referirse a otra cosa que resulte en que la función no se llame.