flutter - Flutter中DropdownButton的列表理解(Dart)
问题描述
我目前正在学习 Flutter,并希望DropdownButton
使用以下列表创建一个:
const List<String> currenciesList = [
'AUD',
'BRL',
'CAD',
'CNY',
'EUR',
];
小部件的item
属性DropdownButton
需要一个列表。因此,我想通过使用列表理解来清理代码。我编写了以下函数来DropdownMenuItem
根据给定的字符串创建一个:
DropdownMenuItem makeDropdownMenuItem (String currency) {
DropdownMenuItem item = DropdownMenuItem(
child: Text(currency),
value: currency,
);
return item;
}
不幸的是,当我使用我在这里找到的列表理解语法时,我得到一个错误:
child: DropdownButton<String>(
value: selectedCurrency,
items: currenciesList.map((currency) => makeDropdownMenuItem(currency)).toList(),
onChanged: (value) {
setState(() {
selectedCurrency = value;
});
},
类型“List<DropdownMenuItem>”不是“List<DropdownMenuItem>”类型的子类型?
谁能帮我解决这个问题?非常感谢!
解决方案
DropdownMenuItem是一个泛型类,因此您必须在 makeDropdownMenuItem 函数中明确指定实际类型:
DropdownMenuItem<String> makeDropdownMenuItem(String currency) {
final item = DropdownMenuItem(
child: Text(currency),
value: currency,
);
return item;
}
推荐阅读
- python - 图像 Python IO 内存流保存和使用时出错
- python - 大熊猫不修改 df
- java - 如何在屏幕中获取 JFrame 位置以放入 JDialog?
- matplotlib - 在 matplotlib 中向条形添加边
- javascript - 刷新后JavaScript未定义变量
- spring - antMatcher 和 mvcMatcher 的区别
- java - 如何从 CSV 文件中获取特定数据
- python - 如何读取 DataFrame 中的特定单元格并写入其中
- flutter - flutter google_sign_in crash : __exceptionPreprocess + 294
- c# - C# itext pdf 创建者希腊字体不显示