我有一个textfield
,并在我的应用程序中使用sqflite
数据库。 sqflite
具有一个值,我需要将其分配给我的textfield
这是我的textfield
代码
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
现在,在我的类的initstate
方法中,我正在从数据库中获取值。由于它是一个异步操作,因此需要时间。
我的bloc类具有以下代码
Function(String) get doctorNameChanged => _doctorName.sink.add;
当我从数据库接收到值时,我立即调用以下函数
doctorNameChanged("valuefromdatabase");
但是我在文本字段中看不到值。同时我的数据库中存在一个值。
是否可能更新该值而不使用 TextEditingController
或 setState
。因为我的类被分成了许多块,而且过于复杂,无法使用上述任何一种方法,所以我试图避免它们。
我已经尝试使用相同的方法处理 RadioButton
和 CheckBox
,它们似乎更新得很好。
值也在 _doctorName.stream.value
中更新,该值存在于数据库中,但是 textfield
不显示任何数据。我也尝试更改 textfield
的颜色,所以那里没有问题,因为我能够看到我输入的内容。
我做了一个小应用程序演示 https://github.com/PritishSawant/demo/tree/master/lib
我使用的是 shared preferences
而不是 sqflite
,但问题仍然存在。