У меня есть, 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но проблема сохраняется