Eu tenho um textfield
e estou usando sqflite
banco de dados no meu aplicativo. O sqflite
tem um valor que eu preciso atribuir ao meutextfield
Aqui está o meu textfield
código
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Agora, no initstate
método da minha classe, estou buscando valor do banco de dados. Sendo uma operação assíncrona, leva tempo.
Minha classe de bloco tem um código como segue
Function(String) get doctorNameChanged => _doctorName.sink.add;
Então, assim que eu receber valor do banco de dados eu chamo a seguir
doctorNameChanged("valuefromdatabase");
mas não consigo ver o valor no meu campo de texto. Também há um valor presente no meu banco de dados. É possível atualizar o valor sem usar TextEditingController
ou setState
. I ma tentando evitar aqueles como a minha turma é dividida em lote de chuncks e muito complicado de usar qualquer um dos acima Eu tentei usar mesma abordagem RadioButton
e CheckBox
e eles parecem atualizar corretamente. O valor também é atualizado, no _doctorName.stream.value
qual está presente no banco de dados, mas textfield
não mostra nenhum dado. Também tentei mudar de cor textfield
para que não haja problema lá, assim como eu sou capaz de ver o que digito.
Fiz uma pequena demonstração do aplicativo https://github.com/PritishSawant/demo/tree/master/lib
Em vez de usar sqflite
, estou usando, shared preferences
mas o problema persiste