如何在下拉列表中具有相同的值 - flutter/dart

How to have same values in dropdown - flutter/dart

我创建了一个地图列表来保存产品名称及其值。例如:假设有两种类型的产品(厨房和电子产品)并且这两种产品具有相同的值 (10)

在这种情况下,下拉菜单会抛出以下错误:检测到 0 个或 2 个或更多个具有相同的值

那么在这种情况下我怎样才能使下拉菜单具有相同的值

这是我到目前为止所做的

String productCategory = '10';
List productList = [{'name':'kitchen', 'value':'10'}, {'name':'electronic', 'value':'10'}];

DropdownButton(
                                  value: productCategory,
                                  isExpanded: true,
                                  items: productList.map((e){
                                    return DropdownMenuItem(
                                      child: Text(e['name'].toString().toUpperCase(), style: GoogleFonts.oswald(textStyle: const TextStyle(color: Colors.black))),
                                      value: e['value'],
                                    );
                                  }).toList(),
                                  onChanged: (value){
                                    setState(() {
                                      productCategory = value as String;
                                    });
                                  }
                              ),

我的解决方案是创建 Product

类型的 DropdownButton
late List<Product> products;
List productList = [
{'name': 'kitchen', 'value': '10'},
{'name': 'electronic', 'value': '10'}];

 @override
void initState() {
   super.initState();
   products = productList.map((e) => Product.fromJson(e)).toList();
   productCategory = products.first;
  }

DropdownButton<Product>(
        value: productCategory,
        isExpanded: true,
        items: products.map((e) {
          return DropdownMenuItem(
            child: Text(e.name.toString().toUpperCase()),
            value: e,
          );
        }).toList(),
        onChanged: (value) {
          setState(() {
            productCategory = value!;
          });
        }),


class Product {
 final String name;
 final String value;

 Product({required this.name, required this.value});

 factory Product.fromJson(Map<String, dynamic> json) {
    return Product(
      name: json['name'],
      value: json['value']);
   }
}

如果这没有帮助,请告诉我。