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

김보겸님의 프로필 이미지
김보겸

작성한 질문수

Flutter 중급 3편 - 의존성 주입 가이드

go router 의존성

해결된 질문

작성

·

187

0

안녕하세요

강의 잘 보고 있습니다.

 

go router 와 dio 를 이용해서 프로젝트를 진행하고 있는데요,

dio 에서 interceptor 를 사용해 토큰을 보내고 응답코드에 따라 상태를 보내고 있습니다.

 

그러나 dio 를 통해 403 코드가 발생했을 시 이전 화면으로 보내거나 로그인 페이지로 보내하는 경우 부득이하게 dio에서 (interceptor) context 를 사용하게 됩니다. 이런 경우 view 에서 부터 view model 을 통해 remote 까지 context를 가져가야하는데 테스트를 어렵게하는 요인이라고 생각이 됩니다.

 

바람직하게 redirection 을 처리하려면 어떻게 해야 되는지 궁금합니다.

감사합니다.

답변 1

0

오준석님의 프로필 이미지
오준석
지식공유자

Context 가 있는 View 까지 이벤트를 전달해야 할 것 같습니다.

에러처리가 어떻게 되고 있는지 잘 모르겠으나 ViewModel 에서 try - catch 를 통해 에러를 캐치해서 View쪽으로 콜백을 전달하거나, (일반 함수 콜백 또는 StreamController 등을 활용)

Data 레이어에서 Result 클래스 패턴을 통해서 에러를 담는 Result 객체를 받아서 결국 View 에 에러가 발생했음을 콜백으로 넘겨줘야 할 것 같습니다.

View 단에서 에러 Stream이 오면 화면 이동을 하면 될 것 같습니다.

비슷한 에러처리가 노트앱에 적용되었으니 힌트를 얻으시면 될 것 같습니다.

김보겸님의 프로필 이미지
김보겸
질문자

해결되었습니다. 감사합니다.!!

김보겸님의 프로필 이미지
김보겸

작성한 질문수

질문하기