인프런 커뮤니티 질문&답변

kium님의 프로필 이미지
kium

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #30 로그인 페이지 (2)

reducer관련 질문 드립니다.

작성

·

204

0

강의 감사하게 잘 듣고 있습니다.
action에서 reducer로 어떻게 연결되는지 몰라서 같은 질문이 있나 찾아 봤는데 아래와 같은 답변을 해 주셨습니다만 잘 이해가 안되서 다시 문의 드립니다.

1. action파일에서 return을 하면 user_reducer.js의 function이 호출되는 이유를 모르겠습니다.

2. 그리고 덧붙여서 user_reducer.js의 함수의 첫번째 인자는 prestate가 들어온다고 배웠는데 여기서 state = {} 로 초기화를 하는건 이전 상태를 받기 전에 초기화를 한다는 의미 인가요? 그렇다면 같은 객체를 담는 action은 안해도 되는건지요?

3. LoginPage 함수의 props는 어디서 받는건가요?

1번의 강사님 답변
1. 파일을 찾아가는건 결국은 TYPE을 통해서 인데, 
   우선 dispatch를 통해서 action으로 오면 action에서 할일을 한 후에   저희가 combineReducers로  설정해 준 부분으로 가서  type에 따라서  case 조건문에서 걸러져서 return 값을 내는 형태입니다.  

답변 2

0

kium님의 프로필 이미지
kium
질문자

답변 주셔서 감사합니다.

reducer가 어디에 정의 되어 있는지는 App.js에서 확인 했습니다.
 [Type에 맞는 reducer를 실행] 한다는 말씀은 Action후의 lifecycle이 reducer이니까 App.js에서 지정한 Reducer인 _reducers/index.js가 실행이 되는데 이때 Type은 combindReducers에 등록된 모든 reducer를 검색해서 일치하는 타입의 reducer를 실행한다 라고 나름 해석을 했는데 맞는지모르겠네요

state의 첫번째 인자는 자동으로 전 state가 대입되는줄 알았는데 명시적으로 넘겨 줘야 한다는 말씀 잘 알겠습니다.

hoc는 좀더 찾아 보겠습니다.

내용 확인만 부탁 드릴께요

 

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 ! 

1번은 리덕스에 흐름에 대해서 질문하신것 같습니다. 
어떠한 모듈이든 모듈 내부에서 소스코드로 정해놓은게 있고 그러기에 그 모듈을 만든 사람이 
Documentation이란걸 적어서 이 모듈을 어떻게 사용할수있는지 설명해놓습니다. 
그런것처럼 리덕스도 어떠한 흐름으로 진행되는지를 만들어 놓고 그 부분에 대해 설명이 있습니다. 
action => reducer => store => react component 이런식으로 흐름이 나아갈수있게 만들어두었습니다. 
그러기에 action 에서 처리할것은 한 후 Type에 맞는 reducer를 실행하는것입니다. 

2. state는 초기 state를 정해주는 부분인데 실제로 user의 초기 정보를 넣어주는게 더 바람직한데 이 프로젝트에서는 그냥 빈 객체로 넣어줬습니다.  리액트에서 state 에서 초기 값 넣어주는것과 같게 생각하시면 됩니다. 
state과 action은 다른 부분입니다. action으로는 action.js 함수에서 넘겨준 payload를 받으시면 됩니다. 

3. hoc 컴포넌트에서 넘겨준 데이터 입니다. 

수고하세요 !

kium님의 프로필 이미지
kium

작성한 질문수

질문하기