我有一个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
。我是个试图避免那些因为我的课是很多chuncks和方式过于复杂,使用任何上述我一直在使用与同样的方法试了划分RadioButton
,并CheckBox
和他们似乎正确更新。_doctorName.stream.value
数据库中存在的值也会更新, 但textfield
不会显示任何数据。我也试图改变颜色,textfield
所以那里没有问题,以及我能够看到我输入的内容。
我已经对该应用程序做了一个小演示https://github.com/PritishSawant/demo/tree/master/lib
sqflite
我正在使用shared preferences
而不是使用,但是问题仍然存在
尝试删除“初值:patientHealthFormBloc.doctorNameValue”,并启动它从StreamBuilder的“initialData”
—
STEL
@Stel谢谢,但不起作用
—
将
@ChinkySight我正在使用Stream来避免TextEditingController。该应用程序很复杂,使用TextEditingController是不可行的
—
将
在您的示例中,您根本没有使用快照。您希望从中提取什么数据以在TextFormField中使用?为什么不能使用TextEditingController?
—
若昂·苏亚雷斯