🔖
Flutter go_router利用時のオブジェクト渡しについて
Flutterの遷移時の値受け渡しについて
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