inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 리액트 프로그래밍

몇 가지 리덕스 사용 팁

질문이 있습니다!

해결된 질문

105

천영도

작성한 질문수 6

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'));
  // ...
}

react redux

답변 1

3

이재승

안녕하세요!

selector.js 를 적극적으로 사용하는 경우에는 getValue 함수를 사용하면 코드 작성이 편해질 것 같습니다.
다만, 
FriendMain 컴포넌트가 렌더링될 때마다 getValue 함수로 인해 새로운 함수가 만들어진다는 단점도 있겠네요.

selector.js 에 대해 첨언하자면,
selector.js 가 도움이 되는 경우는 프로젝트마다 다를 수 있다고 생각합니다.
리덕스에 있는 데이터를 가공해서 가져오는 경우가 많은 경우에는 도움이 되겠지만,
가공하는 경우가 별로 없고 그대로 가져오기만 한다면 
selector.js 작성이 오히려 생산성을 떨어뜨릴 수 있습니다.

자동완성기능이 안되네요 ..

0

500

3

화면에 에러가나네요 ...

0

517

2

setValue 함수 질문 있습니다.

0

841

1

찾아야한다 실습 문의

0

470

1

훅 기초 익히기 - 배치 처리와 순차적 처리의 차이

0

473

1

cra, next.js 관련 질문 드립니다!

0

606

1

useState 배열 비구조화 문법 질문!

0

253

1

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'

1

1082

2

Saga 오류 이거 혹시 왜이런지 알수 있을까요?

0

371

2

http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요

0

658

1

match

1

495

1

버튼이 생성되지 않습니다 .

0

288

1

혹시 import 옆에 파일 사이즈 표시 어떻게 하나요?

0

263

1

saga 문제

0

249

1

에러가 발생하는데 이유가뭘까요..?

0

389

2

선생님과 똑같이 했는데 다 rendering 됩니다.

0

203

1

컴포넌트와 컨테이너의 기준

0

316

1

커스텀훅의 개념과 함수차이

1

1199

1

useEffect 실전 활용법(1) 강의에서 질문있습니다.

0

338

1

리덕스, 사가파일들의 관리

0

208

1

useImperativeHandle 질문 입니다.

0

281

1

컴파일 문의드립니다.

0

204

1

React.memo 관련 질문이 있습니다.

0

374

1

Context API vs Redux 사용 빈도

0

213

1