• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

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

23.06.22 18:51 작성 조회수 184

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입니다.