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.

La última letra no se establece mientras ocurre el evento onChange.

Estoy tratando de escribir una función para un filtro de búsqueda en vivo, esto es lo que tengo para hacerlo:

const [values, setValues] = useState({
    text: ''
});

<input name="text" onchange="{(e)" ==""> handleChange(e)} type="text" className="form-control">;

const handleChange = async e => {
    const {name, value} = e.target;

    await setValues({
        ...values,
        [name]: value
    });

    console.log(values);

    CallAPIWithSearchText(value.text);
}

El problema principal es que, por ejemplo, si escribo “hola”, lo que se almacena en mi constante es “hell” y si elimino todo el texto, obtengo “h” en lugar de null / cadena vacía.

¿Qué puedo hacer para arreglar mi código?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para corregir tu código, puedes modificar la función handleChange para establecer el valor de “text” como una cadena vacía cuando sea nulo o indefinido. Además, debes pasar el valor actualizado de “text” a la función CallAPIWithSearchText en lugar de value.text. Aquí tienes el código modificado para la función handleChange:

    const handleChange = async e => {
        const {name, value} = e.target;
    
        await setValues({
            ...values,
            [name]: value || ''
        });
    
        console.log(values);
    
        CallAPIWithSearchText(values.text);
    }
    

    Esto establecerá el valor de “text” como una cadena vacía si es nulo o indefinido, y pasará el valor actualizado de “text” a la función CallAPIWithSearchText.

Comments are closed.