• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

initialState가 제네릭 S인 이유가 잘 이해가 되지 않습니다.

23.07.20 22:09 작성 조회수 161

0

안녕하세요, 항상 좋은 강의 감사드립니다.

기존에 리덕스를 사용한 경험이 있어서 작성하신 리덕스 사용법에 대해서는 의문이 없으나

ReducersMapObject의 제네릭 S가 initialState라고 말씀해주셨는데 해당 부분이 잘 이해가 되지 않습니다.

제가 현재 이해한 로직으로는
combineReducers자리에 ReducersMapObject<S, A>타입이 들어가고 ReducersMapObject<S, A>은 객체로서 해당 객체의 key값은
제네릭 S의 key값을 K로 받고 해당 value값(S[K])을 Reducer의 첫번째 제네릭으로 ( Reducer<S[K], A>) 들어가 initialState 타입을 리턴해주는 함수타입이 되고 ReducersMapObject 객체의 value값 타입으로 적용되고있습니다. 하지만 아무리 강의를 반복해서 봐도 S가 initialState가 되는 인과관계가 파악이 안되고 있습니다 위의 로직은 전부 S가 initialState라는 약속하에 이해되는 로직인데 해당 약속을 어디서 파악할 수 있는지 혹시 제가 놓친 부분이 있을까요?

어렴풋이 짐작해본 이유로는 createStore 함수를 실행할 때 두번째 인자로 initialState를 넣은 부분이 아닐까 싶은데

해당 이유를 설명해주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

0

combineReducers는 여기만 보시면 됩니다. 이것의 리턴이 Reducer이고 매개변수들은 개별 리듀서들의 합입니다.

https://github.com/reduxjs/redux/blob/80bda95d58f46fb5f6cbf6996ea87d1dcf58a602/src/combineReducers.ts#L114