Skip to content

投稿

Vanilla JavascriptからReactの入力値を変更する

2020年7月27日 • 1 分で読める

Vanilla JavascriptからReactの入力値を変更する

簡潔な答え:

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");

参考:https://stackoverflow.com/a/52486921/17360

詳しい説明:

ReactはネイティブなjavascriptのonChangeの動作をオーバーライドします。onChangeイベントをトリガーしても、Reactの観点からは入力フィールドの値は変わりません。ユーザーには画面に値が表示されているのが見えますが、Reactにとっては値は変わっていないままです。上記のコードはReactでも変更をトリガーします。

Author: Chuck Conway is an AI Engineer with nearly 30 years of software engineering experience. He builds practical AI systems—content pipelines, infrastructure agents, and tools that solve real problems—and shares what he’s learning along the way. Connect with him on social media: X (@chuckconway) or visit him on YouTube and on SubStack.

著者: Chuck Conwayは、ソフトウェアエンジニアリングの経験が30年近くあるAIエンジニアです。彼は実用的なAIシステム(コンテンツパイプライン、インフラストラクチャエージェント、実際の問題を解決するツール)を構築し、学んだことを共有しています。ソーシャルメディアで彼とつながってください: X (@chuckconway) または YouTubeSubStack で彼を訪問してください。

↑ トップに戻る

こちらもおすすめ