Tôi có một textfield
và tôi đang sử dụng sqflite
cơ sở dữ liệu trong ứng dụng của tôi. Các sqflite
có một giá trị mà tôi cần để gán cho tôitextfield
Đây là textfield
mã của tôi
StreamBuilder<String>(
stream: patientHealthFormBloc.doctorName,
builder: (context, snapshot) {
return TextFormField(
initialValue: patientHealthFormBloc.doctorNameValue,
onChanged: (value) {
patientHealthFormBloc.doctorNameChanged(value);
},
...
Bây giờ trong initstate
phương thức của lớp tôi, tôi đang tìm nạp giá trị từ cơ sở dữ liệu. Đây là một hoạt động không đồng bộ nên cần có thời gian.
Lớp học của tôi có một mã như sau
Function(String) get doctorNameChanged => _doctorName.sink.add;
vì vậy ngay sau khi tôi nhận được giá trị từ cơ sở dữ liệu, tôi gọi sau
doctorNameChanged("valuefromdatabase");
nhưng tôi không thể thấy giá trị trong trường văn bản của tôi. Ngoài ra có một giá trị hiện diện trong cơ sở dữ liệu của tôi. Có thể cập nhật giá trị mà không cần sử dụng TextEditingController
hoặc setState
. Tôi ma cố gắng để tránh những người như lớp học của tôi được chia thành nhiều chuncks và cách quá phức tạp để sử dụng bất kỳ trên, chúng tôi đã cố gắng sử dụng phương pháp tương tự với RadioButton
và CheckBox
và họ dường như cập nhật đúng. Giá trị cũng được cập nhật trong _doctorName.stream.value
đó có trong cơ sở dữ liệu nhưng textfield
không hiển thị bất kỳ dữ liệu nào. Ngoài ra tôi đã thử thay đổi màu sắc textfield
vì vậy không có vấn đề gì cũng như tôi có thể thấy những gì tôi gõ.
Tôi đã tạo một bản demo nhỏ của ứng dụng https://github.com/PritishSawant/demo/tree/master/lib
Thay vì sử dụng sqflite
, tôi đang sử dụng shared preferences
nhưng vấn đề vẫn tồn tại