Saya memiliki 2 layar di aplikasi Flutter saya: daftar catatan dan layar untuk membuat dan mengedit catatan.
Jika saya mengirimkan objek ke layar kedua itu berarti saya akan mengedit ini dan jika saya memberikan null itu berarti saya membuat item baru. Layar pengeditan adalah widget Stateful dan saya tidak yakin bagaimana menggunakan pendekatan ini https://flutter.io/cookbook/navigation/passing-data/ untuk kasus saya.
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) {
//.....
}
}
Bagaimana saya dapat mengakses recordObject di dalam _RecordPageState ?
Jawaban:
Untuk menggunakan recordObject di _RecordPageState, Anda harus menulis widget.objectname seperti di bawah ini
sumber
recordObject
menjadi bagian dariState
kelas? Secara logis,StatefulWidget
memasukkannya tidak benar (dalam istilah kohesi). Selain itu, semua bidangStatefulWidget
harus tidak dapat diubah - bagaimana jika Anda ingin mengubahrecordObject
referensi?Text(widget.recordObject)
, dikatakan bahwa var saya adalah nullsumber
recordObject
lapangan baik dalamState
danStatefulWidget
kelas adalah seperti ide yang baik (meskipun aku melihat tutorial melakukan persis ini). Pendekatan mengakses fieldStatefulWidget
dengan menggunakanwidget
field ofState
class sepertinya pendekatan yang lebih tepat (meskipun memiliki masalah sendiri)Contoh Lengkap
Anda tidak perlu meneruskan parameter ke Status menggunakan konstruktornya. Anda dapat dengan mudah mengaksesnya menggunakan widget.myField .
Kirimkan data Anda saat Anda Menavigasi layar:
sumber