Передача данных в 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?
Ответы
Ответ 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
//.....
}
}