UseRef, componentDidUpdate değişimi olarak kullanılamaz

Nov 27 2020

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

2 GlenCarpenter Nov 27 2020 at 15:53

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 .

2 OrAssayag Nov 27 2020 at 15:52

useRef bir React kancasıdır. Değişmek:

import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';