Ho un textfield
e sto usando il sqflite
database nella mia app. Il sqflite
ha un valore che ho bisogno di assegnare al miotextfield
Ecco il mio textfield
codice
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Ora nel initstate
metodo della mia classe, sto recuperando valore dal database. Essendo un'operazione asincrona, ci vuole tempo.
La mia classe di blocco ha un codice come segue
Function(String) get doctorNameChanged => _doctorName.sink.add;
così appena ricevo valore dal database chiamo seguente
doctorNameChanged("valuefromdatabase");
ma non riesco a vedere il valore nel mio campo di testo. Inoltre c'è un valore presente nel mio database. È possibile aggiornare il valore senza usare TextEditingController
o setState
. Sto cercando di evitare quelli perché la mia classe è divisa in molti pezzi e troppo complicata per usare uno dei precedenti con cui ho provato a utilizzare lo stesso approccio RadioButton
e CheckBox
e sembrano aggiornarsi correttamente. Il valore viene anche aggiornato in _doctorName.stream.value
cui è presente nel database ma textfield
non mostra alcun dato. Inoltre ho provato a cambiare il colore ditextfield
quindi non c'è nessun problema e sono in grado di vedere quello che scrivo.
Ho realizzato una piccola demo dell'app https://github.com/PritishSawant/demo/tree/master/lib
Invece di usare sqflite
, sto usando shared preferences
ma il problema persiste