我有一个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;
所以,一旦我从数据库中收到值,我就调用following
doctorNameChanged("valuefromdatabase");
但是我看不到文本字段中的值.此外,我的数据库中还存在一个值.
是否可以在不使用TextEditingController
或setState
的情况下更新值.我正在努力避免这些,因为我的班级被分成很多块,而且太复杂了,不能使用上面的任何一种.
我已经try 在RadioButton
和CheckBox
上使用相同的方法,它们似乎更新正确.
该值也在_doctorName.stream.value
中被更新,该值存在于数据库中,但是textfield
不显示任何数据.另外,我试着更改了textfield
的 colored颜色 ,这样就没有问题了,而且我可以看到我输入的内容.
我已经制作了应用程序https://github.com/PritishSawant/demo/tree/master/lib的一个小演示
我使用的不是sqflite
,而是shared preferences
,但问题仍然存在