Ich habe eine textfieldund ich benutze sqfliteDatenbank in meiner App. Das sqflitehat einen Wert, den ich meinem zuweisen musstextfield
Hier ist mein textfieldCode
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Jetzt in der initstateMethode meiner Klasse hole ich Wert aus der Datenbank. Da es sich um eine asynchrone Operation handelt, dauert es einige Zeit.
Meine Blockklasse hat einen Code wie folgt
Function(String) get doctorNameChanged => _doctorName.sink.add;
Sobald ich einen Wert aus der Datenbank erhalte, rufe ich Folgendes an
doctorNameChanged("valuefromdatabase");
aber ich kann den Wert in meinem Textfeld nicht sehen. Außerdem ist in meiner Datenbank ein Wert vorhanden. Ist es möglich , den Wert zu aktualisieren , ohne Verwendung TextEditingControlleroder setState. Ich bin ein Versuch , diejenigen zu vermeiden , da meine Klasse in vielen chuncks und viel zu kompliziert unterteilt ist eine der verwenden oben ich mit dem gleichen Ansatz versucht habe , mit RadioButtonund , CheckBoxund sie scheinen richtig zu aktualisieren. Der Wert wird ebenfalls aktualisiert, _doctorName.stream.valueder in der Datenbank vorhanden ist, aber textfieldkeine Daten anzeigt. Außerdem habe ich versucht, die Farbe von zu ändern, textfielddamit es dort kein Problem gibt und ich sehen kann, was ich tippe.
Ich habe eine kleine Demo der App https://github.com/PritishSawant/demo/tree/master/lib erstellt
Anstatt zu verwenden sqflite, verwende ich, shared preferencesaber das Problem bleibt bestehen