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