Tengo una textfield
y estoy usando la sqflite
base de datos en mi aplicación. El sqflite
tiene un valor que necesito para asignar a mitextfield
Aqui esta mi textfield
codigo
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Ahora en el initstate
método de mi clase, estoy obteniendo valor de la base de datos. Al ser una operación asincrónica, lleva tiempo.
Mi clase de bloque tiene un código como el siguiente
Function(String) get doctorNameChanged => _doctorName.sink.add;
tan pronto como recibo el valor de la base de datos, llamo a continuación
doctorNameChanged("valuefromdatabase");
pero no puedo ver el valor en mi campo de texto. También hay un valor presente en mi base de datos. ¿Es posible actualizar el valor sin usar TextEditingController
o setState
? I m tratando de evitar aquellos como mi clase se divide en muchos de los desconchados y demasiado complicado de utilizar cualquiera de los anteriores He intentado usar mismo enfoque con RadioButton
y CheckBox
y parece que actualizar correctamente. El valor también se actualiza en el _doctorName.stream.value
que está presente en la base de datos pero textfield
no muestra ningún dato. También intenté cambiar el color de textfield
modo que no haya ningún problema allí, así como puedo ver lo que escribo.
Hice una pequeña demostración de la aplicación https://github.com/PritishSawant/demo/tree/master/lib
En lugar de usar sqflite
, estoy usando shared preferences
pero el problema persiste