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

grs0412님의 프로필 이미지
grs0412

작성한 질문수

Redux vs MobX (둘 다 배우자!)

리덕스를 쓰지 말아야 할 때(인풋)

useSelector 리랜더링 질문있습니다.

해결된 질문

작성

·

291

0

  const userData = useSelector((state) => state.user.data);
  const isLoggingIn = useSelector((state) => state.user.isLoggingIn);
  const postData = useSelector((state) => state.posts.data);

강의에서는 useSelector를 한번씩 써서 가져오면 리랜더링을 줄여줄 수 있다고 하셧는데

  const { userData, isLoggingIn, postData } = useSelector((state) => ({
    userData: state.user.data,
    isLoggingIn: state.user.isLoggingIn,
    postData: state.posts.data,
  }));

이처럼 객체를 새로 만들어서 리턴해줘도 동일하게 리랜더링을 줄여줄 수 있는지 궁금합니다.

답변 1

0

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

매번 새로운 객체가 생성되어서 오히려 매번 리렌더링됩니다. 이 때는 useSelector의 두 번째 인수로 shallowEqual을 넣어주면 됩니다. shallowEqual은 react-redux의 export입니다.

grs0412님의 프로필 이미지
grs0412

작성한 질문수

질문하기