Flutter中DropdownButton2报错:值对应项数量异常问题求助
错误原因
你的第二个下拉按钮初始值设为 currency = 'Dollars',但下拉选项数组 curriencies 里的第一个选项是 'Dollar'(少了末尾的s),两者完全不匹配。DropdownButton2 要求当前选中的 value 必须是下拉选项列表中存在的某一项,否则就会触发这个断言错误。
另外代码里的 curriencies 拼写有误,建议修正为 currencies,避免后续变量名混淆。
修复方案
两种选择二选一即可:
- 把初始值改成和选项一致的
'Dollar'; - 把选项里的
'Dollar'改成'Dollars',和初始值匹配。
修改后的代码示例(以修正初始值为例)
String currency = 'Dollar'; // 修正初始值,和选项一致 var currencies = [ // 修正拼写错误 'Dollar', 'Euro', 'PLN', 'Funts', ]; DropdownButtonHideUnderline( child: DropdownButtonFormField2( items: currencies .map( (item) => DropdownMenuItem<String>( // 把参数名改为item,避免和外层变量currency冲突 value: item, child: Text( item, style: const TextStyle( fontSize: 14, ), ), ), ) .toList(), value: currency, onChanged: (String? newValue) { setState(() { currency = newValue!; }); }, // 补充DropdownButtonFormField2必填的decoration参数 decoration: const InputDecoration( border: OutlineInputBorder(), ), ), );
额外提醒
你使用的 DropdownButtonFormField2 是表单类组件,需要确保提供 decoration 等必填参数,否则可能会出现其他运行错误,记得补全代码片段里缺失的部分。
内容的提问来源于stack exchange,提问作者EL QONDZIX
相关产品推荐
相关产品推荐

