해결된 질문
23.10.24 14:40 작성
·
183
0
안녕하세요
강의 잘 보고 있습니다.
go router 와 dio 를 이용해서 프로젝트를 진행하고 있는데요,
dio 에서 interceptor 를 사용해 토큰을 보내고 응답코드에 따라 상태를 보내고 있습니다.
그러나 dio 를 통해 403 코드가 발생했을 시 이전 화면으로 보내거나 로그인 페이지로 보내하는 경우 부득이하게 dio에서 (interceptor) context 를 사용하게 됩니다. 이런 경우 view 에서 부터 view model 을 통해 remote 까지 context를 가져가야하는데 테스트를 어렵게하는 요인이라고 생각이 됩니다.
바람직하게 redirection 을 처리하려면 어떻게 해야 되는지 궁금합니다.
감사합니다.
답변 1
0
2023. 10. 24. 15:15
Context 가 있는 View 까지 이벤트를 전달해야 할 것 같습니다.
에러처리가 어떻게 되고 있는지 잘 모르겠으나 ViewModel 에서 try - catch 를 통해 에러를 캐치해서 View쪽으로 콜백을 전달하거나, (일반 함수 콜백 또는 StreamController 등을 활용)
Data 레이어에서 Result 클래스 패턴을 통해서 에러를 담는 Result 객체를 받아서 결국 View 에 에러가 발생했음을 콜백으로 넘겨줘야 할 것 같습니다.
View 단에서 에러 Stream이 오면 화면 이동을 하면 될 것 같습니다.
비슷한 에러처리가 노트앱에 적용되었으니 힌트를 얻으시면 될 것 같습니다.
2023. 10. 24. 15:23
해결되었습니다. 감사합니다.!!