首页 > 解决方案 > “对象?”类型的值 不能分配给“字符串”类型的变量

问题描述

DropdownButton(
                value: dropdownvalue,
                icon: Icon(Icons.keyboard_arrow_down),
                items:items.map((String items) {
                  return DropdownMenuItem(
                      value: items,
                      child: Text(items)
                  );
                }
                ).toList(),
                onChanged: (Object? newValue) async {
                  setState(() {
                    dropdownvalue = newValue;
                  }
                  );
                },
              ),

标签: flutterdartflutter-dependenciesdart-polymer

解决方案


根据文档,DropDownButton 小部件的字段值是final T? . 这意味着它是一个也可以为空的泛型类型。

由于您没有提供更具包容性的代码示例,因此我从错误中假设变量dropdownvalue被声明为 String 类型。

您可以通过以下方式补救这种情况:

DropdownButton**<String>**(
                value: dropdownvalue,
                icon: Icon(Icons.keyboard_arrow_down),
                items:items.map((String items) {
                  return DropdownMenuItem(
                      value: items,
                      child: Text(items)
                  );
                }
                ).toList(),
                onChanged: (**String** newValue) async {
                  setState(() {
                    dropdownvalue = newValue;
                  }
                  );
                },
              ),

推荐阅读