Ich habe eine textfield
und ich benutze sqflite
Datenbank in meiner App. Das sqflite
hat einen Wert, den ich meinem zuweisen musstextfield
Hier ist mein textfield
Code
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Jetzt in der initstate
Methode 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 TextEditingController
oder 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 RadioButton
und , CheckBox
und sie scheinen richtig zu aktualisieren. Der Wert wird ebenfalls aktualisiert, _doctorName.stream.value
der in der Datenbank vorhanden ist, aber textfield
keine Daten anzeigt. Außerdem habe ich versucht, die Farbe von zu ändern, textfield
damit 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 preferences
aber das Problem bleibt bestehen