useRef를 componentDidUpdate 대체로 사용할 수 없습니다.
Nov 27 2020
오류
포착되지 않은 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';