Flutter DropdownButton点击选项后不更新显示问题求助
问题出在你给DropdownButton的value属性固定写死成了experienceYears.first——哪怕你在onChanged里更新了experienceTime,但这个变量根本没和下拉框的显示值绑定,所以不管选什么,界面只会一直显示第一个选项。
按下面的步骤修改就能解决:
- 初始化
experienceTime时,直接赋值为experienceYears.first,保证初始状态显示正确 - 把DropdownButton的
value从experienceYears.first改成experienceTime,让下拉框的显示值和选中状态挂钩
修正后的完整代码:
String experienceTime = ""; var experienceYearsRepository = ExperienceYearsRepository(); var experienceYears = []; @override void initState() { experienceYears = experienceYearsRepository.returnExperienceYears(); // 初始化时把默认值设为第一个选项 experienceTime = experienceYears.first; super.initState(); } DropdownButton( isExpanded: true, // 这里改成绑定experienceTime value: experienceTime, items: experienceYears .map((experienceYear) => DropdownMenuItem( value: experienceYear, child: Text(experienceYear.toString()), )) .toList(), onChanged: (selectedExperienceTime) { setState(() { debugPrint(selectedExperienceTime as String?); experienceTime = selectedExperienceTime.toString(); }); }, ),
这样修改后,当你选中某个选项时,experienceTime会被更新,DropdownButton的value跟着变化,界面就会正确显示你选中的内容了。
内容的提问来源于stack exchange,提问作者Caio
相关产品推荐
相关产品推荐

