ReactJSで入力要素がフォーカスされているかどうかを検出する
2023-09-06 19:18:05
質問
ReactJSのレンダー関数内で、以下のような入力要素が現在フォーカスされているかどうかを検出するにはどうしたらよいでしょうか。
<input type="text" style={searchBoxStyle} placeholder="Search"></input>
どのように解決するのですか?
に対してチェックすることができます。
document.activeElement
をチェックすることができます。
const searchInput = React.useRef(null)
if (document.activeElement === searchInput.current) {
// do something
}
return <input type="text" ref={searchInput} />
他の方法としては、イベントリスナーを
focus
と
blur
というイベントが入力フィールドの中にあります。
const [focused, setFocused] = React.useState(false)
const onFocus = () => setFocused(true)
const onBlur = () => setFocused(false)
return <input type="text" onFocus={onFocus} onBlur={onBlur} />
これは、ノードがフォーカスされたりぼかされたりするたびに再レンダリングを呼び出すことに注意してください(しかし、これはあなたが望むことですよね?)
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] テキストボックスのEnterキーで、JavaScriptでボタンクリックをトリガーする
-
[解決済み] ReactJSでコンポーネントがtext型の非制御入力を制御エラーに変更する場合
-
[解決済み] 配列の要素をある配列位置から別の配列位置に移動する。
-
[解決済み] '$(this)' と 'this' の違いは何ですか?
-
[解決済み] React - 制御不能な入力を変更する
-
[解決済み】Reactがlabel要素の'for'属性を無視する件
-
[解決済み] ReactJS - 要素の高さを取得する
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] ECMAScriptとは?
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ