flutter - “对象?”类型的值 不能分配给“字符串”类型的变量
问题描述
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;
}
);
},
),
解决方案
根据文档,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;
}
);
},
),
推荐阅读
- apache - .htaccess - 限制对文件的访问,除非服务器访问
- android - 将文本复制到剪贴板会导致在模拟器上执行并行测试时崩溃
- javascript - SwiperJS 开始视图
- javascript - 如何在 React 中设置动态字段的值?
- python - Python - 使用 if 条件插入参数
- vhdl - FIFO 生成器 13.2 的仿真(带有 AXI 流接口)
- c# - 为什么 reader.ReadToEndAsync() 超时?该代码用于工作,现在它超时
- c - 根据另一个指针对指针进行排序
- data-visualization - 调整 Y 轴值条形图
- c# - (C#) 如何在不使用 DateTime 的情况下转换作为字符串传入的日期格式?