web-dev-qa-db-fra.com

Passer des données à StatefulWidget et y accéder dans son état Flutter

J'ai 2 écrans dans mon application Flutter: liste des enregistrements et écran pour créer et éditer des enregistrements.

Si je passe un objet au deuxième écran, cela signifie que je vais le modifier et si je passe null, cela signifie que je crée un nouvel élément. L'écran d'édition est un widget avec état et je ne sais pas comment utiliser cette approche https://flutter.io/cookbook/navigation/passing-data/ pour mon cas.

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

Comment puis-je accéder à recordObject dans _RecordPageState?

16
moonvader

Pour utiliser recordObject dans _RecordPageState, il vous suffit d'écrire widget.objectname comme ci-dessous

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