Jika Anda mendeklarasikan controller di dalam metode build(), maka controller akan dibuat ulang setiap kali metode build() dijalankan. Ini akan menyebabkan nilai input yang dimasukkan ke dalam TextField atau TextFormField diatur ulang setiap kali widget di-rebuild, yang mungkin bukan perilaku yang diinginkan.
class MyFormWidget extends StatefulWidget {
@override
Widget build(BuildContext context) {
final TextEditingController myController = TextEditingController();
return TextFormField(
controller: myController,
// ... other TextFormField properties
);
}
}
Untuk menghindari masalah ini, sebaiknya Anda deklarasikan controller di luar metode build(), seperti yang telah ditunjukkan dalam contoh sebelumnya, agar controller tidak dihapus dan dibuat ulang setiap kali widget di-rebuild.
Jika Anda mendeklarasikan controller di dalam metode build(), maka controller akan dibuat ulang setiap kali metode build() dijalankan. Ini akan menyebabkan nilai input yang dimasukkan ke dalam TextField atau TextFormField diatur ulang setiap kali widget di-rebuild, yang mungkin bukan perilaku yang diinginkan.
class MyFormWidget extends StatefulWidget { @override Widget build(BuildContext context) { final TextEditingController myController = TextEditingController(); return TextFormField( controller: myController, // ... other TextFormField properties ); } }
Untuk menghindari masalah ini, sebaiknya Anda deklarasikan controller di luar metode build(), seperti yang telah ditunjukkan dalam contoh sebelumnya, agar controller tidak dihapus dan dibuat ulang setiap kali widget di-rebuild.