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

with_all님의 프로필 이미지

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

Redux Saga의 작동 방식

21.09.23 14:12 작성

·

273

0

안녕하세요, 제로초님.

 

Redux Saga의 작동 방식에 대해 질문을 드리려 하는데요.

 

1)

https://github.com/ZeroCho/react-nodebird/blob/master/ch4/front/components/LoginForm.js

 

에서 

 

 const onSubmitForm = useCallback(() => {

    console.log(email, password);

    dispatch({

      type: LOG_IN_REQUEST,

      data: { email, password },

    });

  }, [email, password]);

 

이 함수가 실행이 되면,

 

https://github.com/ZeroCho/react-nodebird/blob/master/ch4/front/sagas/user.js

 

에서

 

function* watchLogIn() {

  yield takeLatest(LOG_IN_REQUEST, logIn);

}

 

실행이 되어,

 

function* logIn(action) {

  try {

    console.log('saga logIn');

    // const result = yield call(logInAPI);

    yield delay(1000);

    yield put({

      type: LOG_IN_SUCCESS,

      data: action.data,

    });

  } catch (err) {

    console.error(err);

    yield put({

      type: LOG_IN_FAILURE,

      error: err.response.data,

    });

  }

}

 

이 실행이 되고,

 

https://github.com/ZeroCho/react-nodebird/blob/master/ch4/front/reducers/user.js

 

에서

 

case LOG_IN_SUCCESS:

      draft.logInLoading = false;

      draft.me = dummyUser(action.data);

      draft.logInDone = true;

      break;

 

이 부분이 실행이 되어,

 

initialState.logInDone = true로 바뀌게 되는 것인지요?

 

2)

https://github.com/ZeroCho/react-nodebird/tree/master/ch4 의 코드로 실행을 한 후, 트윗을 쓰게 되면,

 

https://github.com/ZeroCho/react-nodebird/blob/master/ch4/front/components/PostCardContent.js#L7

 

에서 에러가 발생을 하는데, 향후 코드 수정에 참조하시라고 말씀드립니다.

 

읽어주셔서 감사합니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2021. 09. 23. 14:19

1) 맞습니다. LOG_IN_REQUEST 액션이 호출되기를 reducer와 saga가 기다리고 있습니다.

2) 무슨 에러가 발생하나요?

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

2021. 09. 23. 14:35

답변 감사드립니다.

트윗을 하면 생기는 에러의 사진을 첨부드립니다.

 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2021. 09. 23. 16:07

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

2021. 09. 23. 17:21

세상에... 버그까지 수정해 주시고 감사드립니다!

with_all님의 프로필 이미지

작성한 질문수

질문하기