👋

【Flutter】auto_routeのAutoRouteGuardでcontextを使用する方法

2024/08/10に公開

はじめに

現在、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