👋
【Flutter】auto_routeのAutoRouteGuardでcontextを使用する方法
はじめに
現在、Flutterエンジニアとして活動しているこっしーです。
今回はauto_routeでguard処理の実装に詰まったので記事にしたいと思います。
1440taskという超シンプルなTODOアプリを開発しています。
(ios)https://apps.apple.com/jp/app/1440task/id1640161652
(android)https://play.google.com/store/apps/details?id=site.studio.ringrininfo.new1440task
ユースケース
・providerを生成
・ダイアログの表示
・ユーザーの認証状態の確認
実装
onNavigationのコールバックの中にrouterが返ってくるので、routerのnavigatorKeyのcurrentContextで取得します。
class AuthGuard extends AutoRouteGuard {
void onNavigation(NavigationResolver resolver, StackRouter router) async {
final context = router.navigatorKey.currentContext;
// ここでcontextを使う処理を入れる
}
ただし、contextはnullで返ってくるので、nullチェックする必要がありますね
終わり
皆さんも快適なFlutterライフと楽しみましょう!
Discussion