j'ai un textfield etsqflite base de données dans mon application. Le sqflitea une valeur que je dois attribuer à montextfield
Voici mon textfieldcode
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Maintenant dans le initstate méthode de ma classe, je récupère la valeur de la base de données. Il s'agit d'une opération asynchrone donc cela prend du temps.
Ma classe de bloc a un code comme suit
Function(String) get doctorNameChanged => _doctorName.sink.add;
donc dès que je reçois de la valeur de la base de données j'appelle suivant
doctorNameChanged("valuefromdatabase");
mais je ne peux pas voir la valeur dans mon champ de texte. Il y a aussi une valeur présente dans ma base de données. Est-il possible de mettre à jour la valeur sans utiliser TextEditingControllerou setState. I ma essayant d'éviter ceux que ma classe est divisée en beaucoup de chuncks et trop compliqué à utiliser tout de ce qui précède , je l' ai essayé d' utiliser même approche avec RadioButtonet CheckBoxet ils semblent mettre à jour correctement. La valeur est également mise à jour dans _doctorName.stream.valuelaquelle est présente dans la base de données mais textfieldn'affiche aucune donnée. J'ai également essayé de changer la couleur de textfielddonc il n'y a pas de problème et je peux voir ce que je tape.
J'ai fait une petite démo de l'application https://github.com/PritishSawant/demo/tree/master/lib
Au lieu d'utiliser sqflite, j'utilise shared preferencesmais le problème persiste