Tôi có một textfieldvà tôi đang sử dụng sqflitecơ sở dữ liệu trong ứng dụng của tôi. Các sqflitecó một giá trị mà tôi cần để gán cho tôitextfield
Đây là textfieldmã 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 initstatephươ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 TextEditingControllerhoặ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 RadioButtonvà CheckBoxvà 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 textfieldkhông hiển thị bất kỳ dữ liệu nào. Ngoài ra tôi đã thử thay đổi màu sắc textfieldvì 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 preferencesnhưng vấn đề vẫn tồn tại