⊗jsrtPmHkURD 13 of 47 menu

ReactにおけるDOM操作のためのuseRefフックの使用

前回のレッスンの一つで、refが最も頻繁に使用されるのは DOM要素へのアクセスであると述べました。

例えば、要素にフォーカスを当てたり、スクロールを実行したり、 そのサイズや位置を計算したり、あるいは何らかのメソッドやプロパティを 使用する必要がある場合に、refは役立ちます。 なぜなら、Reactにはそのようなことのための組み込みメソッドが 存在しないからです。

入力フィールドの例を使って、その方法を見てみましょう。 入力フィールドとボタンを持つコンポーネントを作成します:

return ( <div> <input /> <button>focus</button> </div> );

まず、コンポーネントにuseRefをインポートします:

import { useRef } from 'react';

そして、コンポーネント内でrefrefを定義します。 値をnullで初期化します:

const ref = useRef(null);

ボタンにクリックイベントハンドラを設定します:

<button onClick={handleClick}>focus</button>

入力フィールドにアクセスできるようにするために、 refrefを入力フィールドのref属性に書き込みます。 これにより、Reactがこの入力フィールドのDOMノードを作成する際に、 その参照をref.currentに格納し、 入力フィールドのメソッドを使用できるようになります:

<input ref={ref} />

最後に、クリックイベントを処理する関数を追加して、 ボタンがクリックされたときに、入力フィールドに フォーカスが当たるようにします。これで、refを通じて 入力フィールドへの参照が保持されているため、 そのfocusメソッドにアクセスして実行できます:

function handleClick() { ref.current.focus(); }

ボタンをクリックして、入力フィールドにフォーカスが 当たることを確認してください。

このレッスンで作成したAppコンポーネントのコードを使用して、 ボタンがクリックされたときに、入力フィールドにフォーカスが当たるだけでなく、 入力フィールドの内容もクリアされるようにしてください。 そのためには、入力フィールドのvalueプロパティを利用してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否