Redux saga 사용해서 로그인 흐름 공부중인데, 질문이 있습니다

REQ_LOGIN, SUCCESS_LOGIN, FAIL_LOGIN 이렇게 3가지 액션을 만들고,

reqLogin 액션을 실행하여 saga를 통해 데이터를 받아와 successLogin 까지

리듀서로 연결시키는 것은 성공했습니다만…

성공 후에 token을 AsyncStorage로 저장하고, react-navigation을 통해 화면을 이동시켜야 하는데,

해당 행동을 어디에 기록해야할까요? 리듀서 안에 넣어야 하나요?..

보통은 리듀서는 간결하게 스위치 문으로 state 변경사항만 리턴하는 구문으로 휴지시켜주구요, 사이드 이펙트 등 딜레이가 걸리는 코드는 사가 코드에서 돌려줍니다 :slight_smile:
리턴을 하는게 아니고 yield put({ type: ‘SUCCESS_LOGIN’, data }); 등으로 떨어지기 때문에 그 다음줄에 asyncStorage나 네비게이션 구문을 넣어주시면 됩니다. 네비게이션은 히스토리 객체나 navigation prop을 사가 코드에 인자로 넣어주시면 됩니다. 저는 success일 경우와 fail일 경우의 콜백 함수들을 처음부터 인자로 같이 넣어줘서 처리해 왔습니다.

1 Like