🔖

Flutter go_router利用時のオブジェクト渡しについて

2024/12/31に公開

Flutterの遷移時の値受け渡しについて

go_routerを利用していて、オブジェクトを遷移先に渡していたました。
https://pub.dev/packages/go_router

その際に二つ以上のオブジェクトを渡す必要性がでてきた際に、どうすればいいのか詰まったので備忘録でかきこ。

結果としてはいたって単純です。

渡す値のクラスを作成

実際は下記の様なコードになりました。
$extraで渡せるのは一つのオブジェクトだけとのことでしたので、クラスを作成してそちらに渡したい異なるデータを持たせて一緒に渡すだけでした。

以上!

// カスタムデータクラスの作成
class testData {
  final Person person;
  final User user;
  testData({
    required this.person,
    required this.user,
  });
}

// TestRoute の定義
class TestRoute extends GoRouteData {
  const TestRoute(this.$extra);
  /// テストクラスに $extraで渡す
  final testData $extra;

  
  Widget build(BuildContext context, GoRouterState state) {
    return TestPage(
      person: $extra.person,
      user: $extra.user,
    );
  }
}

Discussion