인프런 커뮤니티 질문&답변
질문이 있습니다!
해결된 질문
작성
·
104
1
안녕하세요! 강의 너무 잘 듣고 있습니다.
이번 강의에서 setValue라는 이름의 action creator를 이용해서 코드를 개선하는 방법을 배웠는데요. 여기에 더 나아가서 상태값을 추가했을 때 selector.js도 변경하지 않도록 다음과 같은 코드(getValue)를 selector.js에 추가하는 어떨까요?
// selector.js
// export const getAgeLimit = (state) => state.friend.ageLimit;
export const getValue = (key) => (state) => state.friend[key];
// FriendMain.js
export default function FriendMain() {
const ageLimit = useSelector(getValue('ageLimit'));
// ...
}답변 1
3
이재승
지식공유자
안녕하세요!
selector.js 를 적극적으로 사용하는 경우에는 getValue 함수를 사용하면 코드 작성이 편해질 것 같습니다.
다만, FriendMain 컴포넌트가 렌더링될 때마다 getValue 함수로 인해 새로운 함수가 만들어진다는 단점도 있겠네요.
selector.js 에 대해 첨언하자면,
selector.js 가 도움이 되는 경우는 프로젝트마다 다를 수 있다고 생각합니다.
리덕스에 있는 데이터를 가공해서 가져오는 경우가 많은 경우에는 도움이 되겠지만,
가공하는 경우가 별로 없고 그대로 가져오기만 한다면 selector.js 작성이 오히려 생산성을 떨어뜨릴 수 있습니다.




