課題
React の useRef を使って自分で作成したコンポーネントを親コンポーネントから参照したいのですが、useRefで定義した変数にはnullしか代入されずアクセスできません。
再現コード
npx create-react-app で作成した直後のプロジェクトに、
以下のコンポーネント Test を追加します。
Test.js
js
1const Test = () => { 2 return ( 3 <div> 4 test 5 </div> 6 ) 7} 8export default Test;
Appコンポーネント (Testを 使う側 )で、以下のようにuseRefを定義し、
ボタンを押したときにrefTest変数の中身を確認してみます。
App.js
js
1import { useCallback, useRef } from 'react'; 2import Test from './Test' 3 4function App() { 5 const refTest = useRef(null); 6 7 const onClick = useCallback(() =>{ 8 console.log(refTest.current); 9 }, [refTest]); 10 11 return ( 12 <> 13 <button onClick={onClick}>test</button> 14 <Test ref={refTest}/> 15 </> 16 ); 17} 18export default App;
このとき、コンソールには null が表示されてしまいます。
useCallbackを外したりしましたが、結果は変わりませんでした。
質問
Appから、refTest 変数を使って Test にアクセスしたいのですが、どのようにすればよいでしょうか?
回答1件
あなたの回答
tips
プレビュー