Передача данных в StatefulWidget и доступ к ним в их состоянии во Flutter - PullRequest
0 голосов
/ 11 мая 2018

У меня есть 2 экрана в приложении Flutter: список записей и экран для создания и редактирования записей.

Если я передаю объект на второй экран, это означает, что я собираюсь отредактировать это, и если я передам ноль егоозначает, что я создаю новый предмет.Экран редактирования - это виджет Stateful, и я не уверен, как использовать этот подход 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

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019
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
   //.....
  }
}
0 голосов
/ 11 мая 2018

Чтобы использовать recordObject в _RecordPageState, вам просто нужно написать widget.objectname, как показано ниже

class _RecordPageState extends State<RecordPage> {
  @override
  Widget build(BuildContext context) {
   .....
   widget.recordObject
   .....
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...