UseRef, componentDidUpdate değişimi olarak kullanılamaz
Hata
Yakalanmamış TypeError: Nesne (...) bir işlev değil
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
İşlevsel bir bileşenim var ve componentDidUpdate'i kullanmak için kancalardan yararlanmaya çalışıyorum, onSubmit işlevimde arama ve API için bir gönderim başlatıyorum ve bu API'nin redux'ta depolanan sonuçtaki yükünün ne olduğunu görmem gerekiyor. Ama yukarıdaki hatayı alıyorum?
React kancalarını kullanarak componentDidUpdate'e useRef Eşdeğeri kullanmayı söyleyen bu yanıtı buldum.
Yanıtlar
Ref kullanarak erişmelisiniz mounted.current. Onu bir değer başlatmadığınız için, geri dönecektir undefined.
Referansınızı bir JSX öğesine atıyorsanız, DOM yüklenene kadar ona erişmeniz mümkün olmayacaktır. Bu durumda, useLayoutEffectDOM yüklenene kadar çalışmayacağı için kancayı kullanmanızı öneririm .
useRef bir React kancasıdır. Değişmek:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';