Beiträge
Ändern eines React-Eingabewerts aus Vanilla Javascript
27. Juli 2020 • 1 min Lesezeit
Die kurze Antwort:
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");
Referenz: https://stackoverflow.com/a/52486921/17360
Die lange Antwort:
React überschreibt das native Javascript-onChange-Verhalten. Das Auslösen eines onChange-Events ändert nichts am Eingabefeldwert aus Reacts Perspektive. Für React ist der Wert immer noch unverändert, obwohl ein Benutzer den Wert auf dem Bildschirm deutlich sehen kann. Der obige Code löst die Änderung auch in React aus.
Autor: Chuck Conway ist ein KI-Ingenieur mit fast 30 Jahren Erfahrung in der Softwareentwicklung. Er entwickelt praktische KI-Systeme – Content-Pipelines, Infrastruktur-Agenten und Tools, die echte Probleme lösen – und teilt seine Erkenntnisse unterwegs. Verbinden Sie sich mit ihm in den sozialen Medien: X (@chuckconway) oder besuchen Sie ihn auf YouTube und auf SubStack.