Articles
Modifier une valeur d'entrée React à partir de Javascript vanilla
27 juillet 2020 • 1 min de lecture
La réponse courte :
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");
Référence : https://stackoverflow.com/a/52486921/17360
La réponse longue :
React remplace le comportement natif onChange de Javascript. Déclencher un événement onChange ne fait rien pour modifier la valeur du champ d’entrée aux yeux de React. Pour React, la valeur est toujours inchangée, même si pour un utilisateur la valeur peut clairement être vue à l’écran. Le code ci-dessus déclenche également le changement dans React.
Auteur : Chuck Conway est un ingénieur IA avec près de 30 ans d’expérience en génie logiciel. Il construit des systèmes IA pratiques — pipelines de contenu, agents d’infrastructure et outils qui résolvent des problèmes réels — et partage ce qu’il apprend en chemin. Connectez-vous avec lui sur les réseaux sociaux : X (@chuckconway) ou visitez-le sur YouTube et sur SubStack.