Ho un textfielde sto usando il sqflitedatabase nella mia app. Il sqfliteha un valore che ho bisogno di assegnare al miotextfield
Ecco il mio textfieldcodice
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Ora nel initstatemetodo 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 TextEditingControllero 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 RadioButtone CheckBoxe sembrano aggiornarsi correttamente. Il valore viene anche aggiornato in _doctorName.stream.valuecui è presente nel database ma textfieldnon 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 preferencesma il problema persiste