Saya punya textfield
dan saya menggunakan sqflite
basis data di aplikasi saya. The sqflite
memiliki nilai yang saya perlu untuk menetapkan ke sayatextfield
Ini textfield
kode saya
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Sekarang dalam initstate
metode kelas saya, saya mengambil nilai dari database. Itu menjadi operasi yang tidak sinkron sehingga butuh waktu.
Kelas blok saya memiliki kode seperti berikut
Function(String) get doctorNameChanged => _doctorName.sink.add;
jadi segera setelah saya menerima nilai dari database saya sebut berikut
doctorNameChanged("valuefromdatabase");
tetapi saya tidak bisa melihat nilai di bidang teks saya. Juga ada nilai yang ada di basis data saya. Apakah mungkin untuk memperbarui nilai tanpa menggunakan TextEditingController
atau setState
. Saya mencoba untuk menghindari mereka karena kelas saya terbagi dalam banyak chuncks dan terlalu rumit untuk menggunakan salah satu di atas saya telah mencoba menggunakan pendekatan yang sama dengan RadioButton
dan CheckBox
dan mereka tampaknya memperbarui dengan benar. Nilai ini juga diperbarui di _doctorName.stream.value
mana ada dalam database tetapi textfield
tidak menunjukkan data apa pun. Saya juga mencoba mengubah warna textfield
jadi tidak ada masalah di sana dan saya bisa melihat apa yang saya ketik.
Saya telah membuat demo kecil aplikasi https://github.com/PritishSawant/demo/tree/master/lib
Alih-alih menggunakan sqflite
, saya menggunakan shared preferences
tetapi masalahnya tetap ada