You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中DropdownButton2报错:值对应项数量异常问题求助

问题解决: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:36:24