말랑한 하루
[Flutter] (Project) MapleApp: 27. 예외 처리 작업-6 본문
반응형
🥕 navigator key 사용
그렇게 모든 로직을 Contorller로 옮겼을 때, 우리는 Notifier에 의해 ref를 자유자재로 사용할 수 있지만 Widget의 context를 사용하려면 매개변수로 넘겨주어야 한다. 하지만 이런 경우, 코드 간 응집도가 높아질 수 있기 때문에 다른 방법을 찾고 싶었다.
그 중 한 방법이 GoRouter의 navigatorKey를 사용하는 것이다. GlobalKey로 GoRotuer에 navigatorKey를 설정하면 key의 currentContext를 통해 가장 최근의 context를 가져올 수 있고, 그 context로 go/push 행위를 진행할 수 있다. 사용은 다음과 같다.
GlobalKey<NavigatorState> navigatorkey = GlobalKey<NavigatorState>();
GoRouter mainRouter = GoRouter(
navigatorKey: navigatorkey,
...
);
navigatorkey.currentContext.go('/');
🥕 SingleChildScrollView Scroll 위치 초기화
Scroll에 대한 컨트롤을 하고 싶으면 ScrollController를 사용하면 된다.
※ reference : https://api.flutter.dev/flutter/widgets/ScrollController-class.html
우리는 강제적으로 위치를 0으로 옮기고 싶으므로, reference에서 찾을 수 있는 jumpTo method를 활용하면 간단하게 사용할 수 있다.
반응형
'개발 > Flutter' 카테고리의 다른 글
[Flutter] (Project) MapleApp: 29. 배포 전 준비 (0) | 2024.01.24 |
---|---|
[Flutter] (Project) MapleApp: 28. 예외 처리 작업-마무리 (0) | 2024.01.23 |
[Flutter] (Project) MapleApp: 26. 예외 처리 작업-5 (0) | 2024.01.21 |
[Flutter] (Project) MapleApp: 25. 예외 처리 작업-4 (0) | 2024.01.20 |
[Flutter] (Project) MapleApp: 24. 예외 처리 작업-3 (0) | 2024.01.19 |
Comments