es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , ,

Answer

  1. Avatar for 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:

    • Asegúrate de que el componente 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 de console.log antes de la llamada al método this.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. Agrega this.onInputChange = this.onInputChange.bind(this); en el método constructor.

    import React, { Component } from 'react';
    
    class SearchBar extends Component {
      constructor(props) {
        super(props);
    
        this.onInputChange = this.onInputChange.bind(this);
      }
    
      render() {
        return <input onchange="{this.onInputChange}">;
      }
    
      onInputChange(event) {
        console.log(event);
      }
    }
    
    export default SearchBar;
    

    Al vincular el método al constructor, se asegura de que la palabra clave this se refiera a la instancia de la clase SearchBar. Sin vinculación, this puede referirse a otra cosa que resulte en que la función no se llame.

Comments are closed.