StatelessWidget でデータを受け取る場合
- 画面遷移元から受け取るデータの引数を宣言
- 引数付きコンストラクタを作成し、引数として受け取るデータの変数を宣言
class NextPage extends StatelessWidget {
// 画面遷移元からのデータを受け取る変数
final int value;
// コンストラクタ
const NextPage({Key? key, required this.value}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
… , // 省略
);
}
}
StatefulWidget でデータを受け取る場合
StatelessWidgetの手順に加えて、Statefulではデータ(変数)にアクセスするにはwidget.変数を用いる
class NextPage extends StatefulWidget {
// 画面遷移元からのデータを受け取る変数
final int value;
// コンストラクタ
const NextPage({Key? key, required this.value}) : super(key: key);
@override
State<NextPage> createState() => _NextPageState();
}
class _NextPageState extends State<NextPage> {
// 状態を管理する変数
late int state;
@override
void initState() {
super.initState();
// 受け取ったデータを状態を管理する変数に格納
state = widget.value;
}
@override
Widget build(BuildContext context) {
return Scaffold(
… , // 省略
);
}
}
データの受け渡し方
わたす変数のデータを引数として渡す。
Navigator.push(
context,
MaterialPageRoute(builder: (context) => NextPage(value: 100)),
);