목록분류 전체보기 (245)
말랑한 하루
🥕 navigator key 사용 그렇게 모든 로직을 Contorller로 옮겼을 때, 우리는 Notifier에 의해 ref를 자유자재로 사용할 수 있지만 Widget의 context를 사용하려면 매개변수로 넘겨주어야 한다. 하지만 이런 경우, 코드 간 응집도가 높아질 수 있기 때문에 다른 방법을 찾고 싶었다. 그 중 한 방법이 GoRouter의 navigatorKey를 사용하는 것이다. GlobalKey로 GoRotuer에 navigatorKey를 설정하면 key의 currentContext를 통해 가장 최근의 context를 가져올 수 있고, 그 context로 go/push 행위를 진행할 수 있다. 사용은 다음과 같다. GlobalKey navigatorkey = GlobalKey(); GoRout..
🥕 notifier 안에 stateProvider로 사용자 흐름 제어하기 입력 받은 텍스트에 대해 유효성 검사를 진행 한 후에, 모든 결과를 만족하면 다음 페이지로 넘어가도록 설정해주는 작업을 해야 했다. 그러기 위해서 현재 http request를 진행 중인지, Response는 무엇인지, Error는 없는지 확인해야 했다. 그래서 http 통신을 위한 fetch 기반 AsyncNotifier에서, 현재 페이지의 여러 상태들을 관리하기 위한 Notifier를 Controller 형식으로 설계하여 UI와 로직을 분리하기 위한 노력을 했다. 현재 진행 중인지를 나타내는 isLoading, 에러가 있는지 확인하는 hasError, 에러가 존재하는 경우 사용자를 위한 문구를 제공하는 errorMessage 등..