Publicaciones
Cambiar un valor de entrada de React desde Javascript vanilla
27 de julio de 2020 • 1 min de lectura
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.