drop-down-menu - flutter 中的 DropdownButton 小部件不接受报价中的数字

标签 drop-down-menu dart flutter

我有下面显示的这个小部件,只要项目是字母就可以工作,但是一旦我将它们切换为单引号中的数字,它就会停止工作并给我这个错误:

    I/flutter (31770): The following assertion was thrown 
    building ScopedModelDescendant<MainModel>(dirty):
    I/flutter (31770): 'package:flutter/src/material/dropdown.dart': Failed 
    assertion: line 481 pos 15: 'value == null ||
    I/flutter (31770): items.where((DropdownMenuItem<T> item) => item.value 
    == value).length == 1': is not true.

这是实际的小部件:

      Widget _buildServingDropdownButton(Product product) {
if (product != null) {
  topperValue = product.topper;
}
return Padding(
  padding: const EdgeInsets.all(0.0),
  child: Column(
    mainAxisAlignment: MainAxisAlignment.start,
    children: <Widget>[
      ListTile(
        title: const Text('Topper'),
        trailing: DropdownButton<String>(
            hint: Text('Choose'),
            onChanged: (String value) {
              setState(() {
                topperValue = value;

                print(topperValue);
              });
            },
            value: topperValue,
            items: <String>[
              '1',
            ].map((String value) {
              return DropdownMenuItem<String>(
                value: value,
                child: Text(value),
              );
            }).toList()),
      ),
    ],
  ),
);
}

最佳答案

当指定的值在您的 DropdownMenuItem 中不可用时,会发生此错误。

你刚刚定义了一个项目:

items: <String>[
          '1',
        ]

但如果您的 topperValue 不同,您将收到该错误。

if (product != null) {
   topperValue = product.topper;  //different from '1' 
 }

value: topperValue,

关于drop-down-menu - flutter 中的 DropdownButton 小部件不接受报价中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51751343/

相关文章:

javascript - 从服务中获取硬编码的下拉值,而不是直接在 html 中显示

sockets - 使用 Flutter App 运行 SocketServer 并通过 Socket 与其他手机通信

flutter - 如何解决 ListView.builder 底部溢出问题?

flutter : Achieved Sliverappbar Shape

javascript - angularjs 选择下拉验证

asp.net-mvc - ASP.net MVC DropDownList 预选项目被忽略

visual-studio-code - 处理异常 : Process "C:\Users\...\android\gradlew.bat" exited abnormally:

dart - dartlang 中的 double.toStringAsFixed 和 toStringAsPrecision 有什么区别?

flutter - 使 TabBarView 占用所有剩余空间

css - IE中的下拉菜单问题