Non è possibile utilizzare useRef come sostituzione componentDidUpdate
Errore
Uncaught TypeError: Object (...) non è una funzione
import { useSelector, useDispatch, useRef } from 'react-redux'
const mounted = useRef();
useEffect(() => {
console.log('mounted', mounted)
console.log('useEffect props:', props)
Ho un componente funzionale e cerco di sfruttare gli hook per utilizzare componentDidUpdate, nella mia funzione onSubmit lancio un invio per chiamare e API e ho bisogno di vedere qual è il payload risultante di quell'API, che è memorizzato in redux. Ma ricevo l'errore sopra?
Ho trovato questa risposta che diceva di usare useRef Equivalent a componentDidUpdate usando gli hook React
Risposte
Dovresti accedere al tuo riferimento usando mounted.current. Poiché non si sta inizializzando un valore, verrà restituito undefined.
Se stai assegnando il tuo riferimento a un elemento JSX, non sarai in grado di accedervi finché il DOM non sarà stato caricato. In tal caso, suggerirei di utilizzare l' useLayoutEffecthook, poiché non verrà eseguito fino a quando il DOM non sarà stato caricato.
useRef è un hook di React. Cambia in:
import React, { useRef } from 'react';
import { useSelector, useDispatch } from 'react-redux';