Skip to content

Publicaciones

Cambiar un valor de entrada de React desde Javascript vanilla

27 de julio de 2020 • 1 min de lectura

Cambiar un valor de entrada de React desde Javascript vanilla

La respuesta corta:

function setNativeValue(element, value) {
    let lastValue = element.value;
    element.value = value;
    let event = new Event("input", { target: element, bubbles: true });
    // React 15
    event.simulated = true;
    // React 16
    let tracker = element._valueTracker;
    if (tracker) {
        tracker.setValue(lastValue);
    }
    element.dispatchEvent(event);
}

var input = document.getElementById("ID OF ELEMENT");
setNativeValue(input, "VALUE YOU WANT TO SET");

Referencia: https://stackoverflow.com/a/52486921/17360

La respuesta larga:

React anula el comportamiento nativo de onChange de Javascript. Disparar un evento onChange no hace nada para cambiar el valor del campo de entrada en los ojos de React. Para React, el valor sigue sin cambios, aunque para un usuario el valor se puede ver claramente en la pantalla. El código anterior dispara el cambio en React también.

Autor: Chuck Conway es un Ingeniero de IA con casi 30 años de experiencia en ingeniería de software. Construye sistemas de IA prácticos—canalizaciones de contenido, agentes de infraestructura y herramientas que resuelven problemas reales—y comparte lo que está aprendiendo en el camino. Conéctate con él en redes sociales: X (@chuckconway) o visítalo en YouTube y en SubStack.

↑ Volver arriba

También te puede interesar