인프런 커뮤니티 질문&답변

박재영님의 프로필 이미지
박재영

작성한 질문수

Redux vs MobX (둘 다 배우자!)

useDispatch 관련 질문드립니다

해결된 질문

작성

·

275

0

안녕하세요 :) 

const dispatch  = useDispatch(); 

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

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

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

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

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

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

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

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

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

박재영님의 프로필 이미지
박재영
질문자

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

박재영님의 프로필 이미지
박재영

작성한 질문수

질문하기