У мене є, textfield
і я використовую sqflite
базу даних у своєму додатку. Значення sqflite
має значення, яке мені потрібно призначити моємуtextfield
Ось мій textfield
код
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Тепер у initstate
методі мого класу я отримую значення з бази даних. Це асинхронна операція, тому потрібен час.
У мого блокового класу є такий код:
Function(String) get doctorNameChanged => _doctorName.sink.add;
тож як тільки я отримую значення з бази даних, я дзвоню наступним
doctorNameChanged("valuefromdatabase");
але я не можу бачити значення у своєму текстовому полі. Також у моїй базі даних є значення. Чи можливо оновити значення без використання TextEditingController
або setState
. Я ма намагаюся уникнути тих , як мій класу ділиться на багато chuncks і занадто складний , щоб використовувати будь-якого з перерахованого вище я спробував використовувати той же підхід , з RadioButton
і CheckBox
і вони , здається , щоб оновити належним чином. Також оновлено значення, _doctorName.stream.value
яке присутнє в базі даних, але textfield
не показує жодних даних. Також я спробував змінити колір, textfield
так що немає жодної проблеми, а також я можу побачити, що я ввожу.
Я створив невелику демонстраційну програму https://github.com/PritishSawant/demo/tree/master/lib
Замість використання sqflite
я використовую, shared preferences
але проблема зберігається