Tengo una textfieldy estoy usando la sqflitebase de datos en mi aplicación. El sqflitetiene un valor que necesito para asignar a mitextfield
Aqui esta mi textfieldcodigo
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Ahora en el initstatemé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 TextEditingControllero 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 RadioButtony CheckBoxy parece que actualizar correctamente. El valor también se actualiza en el _doctorName.stream.valueque está presente en la base de datos pero textfieldno muestra ningún dato. También intenté cambiar el color de textfieldmodo 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 preferencespero el problema persiste

Respuestas:
OK, así que finalmente encontré la solución a mi problema.
El siguiente es mi código, que acabo de usar en
SharedPreferenceslugar delsqflitesiguiente ejemplo. Lo mismo se puede hacer consqflitefuente
Pruebe el siguiente enfoque:
dejame saber si necesitas mas ayuda.
fuente
builder: (context, snapshot)?Lo que sugería en mis comentarios era algo como esto:
No quería escribir esta respuesta sin entender por qué no quería usar un TextEditingController o un setState. Pero esto debería lograr lo que desea mientras usa el patrón Bloc.
fuente
TextEditController, entonces descarté esa Idea. Es genial que solo al usar el controlador la solución se vuelva simple y pequeña para trabajar con precisión. Gran trabajo.