web-dev-qa-db-ja.com

StatefulWidgetにデータを渡し、Flutterの状態でデータにアクセスする

Flutterアプリには、レコードのリストと、レコードを作成および編集するための画面の2つの画面があります。

オブジェクトを2番目の画面に渡すと、これを編集することになり、nullを渡すと、新しいアイテムを作成していることになります。編集画面はステートフルウィジェットであり、このアプローチの使用方法がわかりません https://flutter.io/cookbook/navigation/passing-data/ 私の場合。

class RecordPage extends StatefulWidget {
  final Record recordObject;

  RecordPage({Key key, @required this.recordObject}) : super(key: key);

  @override
  _RecordPageState createState() => new _RecordPageState();
}

class _RecordPageState extends State<RecordPage> {
  @override
  Widget build(BuildContext context) {
   //.....
  }
}

recordObject_ RecordPageState内にアクセスするにはどうすればよいですか?

42
moonvader

_RecordPageStateでrecordObjectを使用するには、次のようにwidget.objectnameを記述する必要があります。

class _RecordPageState extends State<RecordPage> {
  @override
  Widget build(BuildContext context) {
   .....
   widget.recordObject
   .....
  }
}
97
dhuma1981
class RecordPage extends StatefulWidget {
  final Record recordObject;

  RecordPage({Key key, @required this.recordObject}) : super(key: key);

  @override
  _RecordPageState createState() => new _RecordPageState(recordObject);
}

class _RecordPageState extends State<RecordPage> {
  Record  recordObject
 _RecordPageState(this. recordObject);  //constructor
  @override
  Widget build(BuildContext context) {.    //closure has access
   //.....
  }
}
11
John Mcfetridge