componentDidUpdateの代わりにuseRefを使用できません
Nov 27 2020
エラー
Uncaught TypeError:Object(...)は関数ではありません
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
機能コンポーネントがあり、フックを利用してcomponentDidUpdateを使用しようとしています。onSubmit関数で、呼び出しとAPIへのディスパッチを起動し、reduxに保存されているそのAPIの結果のペイロードを確認する必要があります。しかし、上記のエラーが発生しますか?
Reactフックを使用してcomponentDidUpdateと同等のuseRefを使用するというこの回答を見つけました
回答
2 GlenCarpenter Nov 27 2020 at 15:53
を使用して参照にアクセスする必要がありますmounted.current
。値を初期化していないため、が返されundefined
ます。
参照をJSX要素に割り当てる場合、DOMが読み込まれるまでその要素にアクセスできません。その場合、useLayoutEffect
DOMが読み込まれるまでフックは実行されないため、フックを使用することをお勧めします。
2 OrAssayag Nov 27 2020 at 15:52
useRefはReactフックです。への変更:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';