Подтвердить что ты не робот

Передача данных в StatefulWidget и их доступ к ней в Flutter

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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