해결된 질문
작성
·
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입니다.