イベントを使用したTextArea要素のキー遅延の防止


問題


私はテキストキー要素からテキストをつかむためにOnKeyPressイベントを使用していました、しかし、私は集められたデータが1文字遅れたと理解しました.それから、私はonkeyupとonkeydownを試みました、しかし、それはまだ1文字遅れました.
最初は、これは私のコードのバグだと思いましたが、慎重な配慮の後、私は自分のコードが素晴らしく、OnKeyPressイベントも正しく動作していたので、1文字の遅延はどうなっていましたか?

本当に起こったこと


イベントから要素の値を取得したい場合は、通常はevent.target.value , このコードは、要素内のコンテンツを返すコードです.現在、内容が返されるときevent.target.value code , 現在のイベントを除くすべてを返します.
何が起こっているかを示すために実験をします.以下のGIFでは、TextArea OnKeyPressイベントに関数を追加します.
const show = e =>{
    console.log(e.target.value);
    console.log(e);
}

最初の文字が入力されるとevent.target.value は'イベントオブジェクトに値が含まれていないためですevent.target.value .
我々がタイプし続けて、この同じ類推は起こります

問題解決


問題が起きているのを見ていると、解決策が見えます.
キー遅延を防ぐために、我々はちょうどイベントを加えるために我々の機能を調節する必要があります.現在の文字を含むキーevent.target.value これにはすでに' text 'が含まれているので、関数は以下のようになります
    const get_value = (e){
        let text = e.target.value + e.key
    }
それで、それは解決の人々です.