web-dev-qa-db-de.com

Übergeben von Daten an StatefulWidget und Zugriff auf sie in ihrem Zustand in Flutter

In meiner Flutter-App gibt es zwei Bildschirme: Liste der Datensätze und Bildschirm zum Erstellen und Bearbeiten von Datensätzen.

Wenn ich ein Objekt an den zweiten Bildschirm weitergebe, bedeutet dies, dass ich das bearbeiten werde, und wenn ich null übergebe, bedeutet das, dass ich ein neues Element erstelle. Der Bearbeitungsbildschirm ist ein Stateful-Widget, und ich bin mir nicht sicher, wie ich diesen Ansatz https://flutter.io/cookbook/navigation/passing-data/ für meinen Fall verwenden soll.

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) {
   //.....
  }
}

Wie kann ich auf recordObject in _RecordPageState zugreifen?

16
moonvader

Um recordObject in _RecordPageState zu verwenden, müssen Sie einfach widget.objectname wie folgt schreiben

class _RecordPageState extends State<RecordPage> {
  @override
  Widget build(BuildContext context) {
   .....
   widget.recordObject
   .....
  }
}
45
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
   //.....
  }
}
2
John Mcfetridge