我正在尝试从下拉菜单中更改列表,但得到此错误:“需要类型为‘themeColor >’的值,但得到类型为'MappedListIterable>‘的值
Color selected ;
MaterialApp(
theme: ThemeData(primarySwatch: selected),
home: Scaffold();
List myColor = [
Colors.amber,
Colors.blue,
Colors.green,
Colors.black,
];
DropdownButton(
icon: Icon(Icons.arrow_downward),
value: selected,
onChanged: (value){
setState(() {
selected = value;
});
},
items: myColor.map((value)=>DropdownMenuItem(
value: value,
child: Text(value.toString()),
))
),发布于 2020-01-18 02:30:21
DropdownButton要求显式类型与其项正确匹配。您也没有将map返回的iterable转换回一个列表:
// Before, it's type was List<dynamic>
List<Color> myColor = [ // Add <Color>
Colors.amber,
Colors.blue,
Colors.green,
Colors.black,
];和
items: myColor.map(
(value) => DropdownMenuItem(
value: value,
child: Text(value.toString()),
),
).toList(), // Add toList()有关更多详细信息,请参阅DropdownButton docs。
https://stackoverflow.com/questions/59791964
复制相似问题