• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

useDispatch 관련 질문드립니다

22.03.18 16:44 작성 조회수 207

0

안녕하세요 :) 

const dispatch  = useDispatch(); 

const getTodoDatum = useCallback(() => {
  dispatch(fechLocal());
}, [dispatch]);

이런식으로 dispatch를 사용하는 함수를 useCallback으로 감싸고 의존성 배열에 dispatch를 넣었는데요

상태가 변경될 때마다 disptach가 새로 생성되어서 getTodoDatum도 새로 생성되더라구요.

또 이 함수를 전달받는 컴포넌트들도 리렌더링되구요. 

그래서 useMemo를 사용하려 했지만,  콜백함수 안에 useDispatch를 넣으니 hook은 컴포넌트 최상단에 넣어야한다는 에러가 뜨더라구요.

음..  잘 전달됐을지 모르지만 요약하자면 useDispatch()의 값을 메모이제이션 할 수 있는 방법이 궁금합니다!

참고 할 수 있는 키워드 혹은 사이트만 알려주셔도 감사하겠습니다:)

답변 1

답변을 작성해보세요.

1

dispatch는 값이 아예 바뀌지 않습니다.  그래서 리렌더링을 유발하지도 않아야 정상입니다. 혹시 컴포넌트 자체가 다른 원인으로 리렌더링되는 것 아닌가요?

박재영님의 프로필

박재영

질문자

2022.03.18

아! 그렇군요 
확인 다시 해보겠습니다. 답변 감사합니다:)