3
วิธีอัปเดตค่าสำหรับ TextField โดยใช้ StreamBuilder
ฉันมีtextfieldและฉันใช้sqfliteฐานข้อมูลในแอปของฉัน sqfliteมีค่าที่ฉันต้องการจะกำหนดให้กับฉันtextfield นี่คือtextfieldรหัสของฉัน StreamBuilder<String>( stream: patientHealthFormBloc.doctorName, builder: (context, snapshot) { return TextFormField( initialValue: patientHealthFormBloc.doctorNameValue, onChanged: (value) { patientHealthFormBloc.doctorNameChanged(value); }, ... ตอนนี้ในinitstateวิธีการเรียนของฉันฉันกำลังดึงค่าจากฐานข้อมูล มันเป็นการดำเนินการแบบอะซิงโครนัสดังนั้นจึงต้องใช้เวลา คลาสกลุ่มของฉันมีรหัสดังนี้ Function(String) get doctorNameChanged => _doctorName.sink.add; ดังนั้นทันทีที่ฉันได้รับค่าจากฐานข้อมูลฉันเรียกดังต่อไปนี้ doctorNameChanged("valuefromdatabase"); แต่ฉันไม่เห็นคุณค่าในฟิลด์ข้อความของฉัน นอกจากนี้ยังมีค่าอยู่ในฐานข้อมูลของฉัน มันเป็นไปได้ที่จะปรับปรุงค่าโดยไม่ต้องใช้หรือTextEditingController setStateฉัน ma พยายามที่จะหลีกเลี่ยงการเหล่านั้นเป็นชั้นเรียนของฉันจะแบ่งออกเป็นจำนวนมาก chuncks และวิธีการที่ซับซ้อนเกินไปที่จะใช้ใด ๆ ข้างต้นที่ผมได้ลองใช้วิธีการเดียวกันกับRadioButtonและCheckBoxและพวกเขาดูเหมือนจะอัปเดตอย่างถูกต้อง ค่าจะถูกอัพเดต _doctorName.stream.valueซึ่งมีอยู่ในฐานข้อมูล แต่textfieldไม่แสดงข้อมูลใด ๆ นอกจากนี้ฉันพยายามเปลี่ยนสีของtextfieldดังนั้นจึงไม่มีปัญหาเช่นเดียวกับที่ฉันสามารถดูสิ่งที่ฉันพิมพ์ ฉันได้ทำการสาธิตแอพเล็ก ๆhttps://github.com/PritishSawant/demo/tree/master/lib แทนที่จะใช้sqfliteฉันกำลังใช้shared preferencesแต่ปัญหายังคงมีอยู่