flutter - 尝试添加图标时出现此错误:类型“String”不是“函数结果”的“IconData”类型的子类型
问题描述
我正在尝试将图标动态添加到菜单中。我有一个类,其中有一个 IconData 属性,一个包含我的 IconData 元素的列表,以及一个添加图标的小部件。
这是产生错误的代码:
Padding(
padding: EdgeInsets.all(16.0),
child: Icon(category.iconLocation)
),
这是我的清单:
static const _icons = <IconData>[
Icons.sim_card,
Icons.settings_input_antenna,
Icons.network_check,
Icons.shopping_cart,
Icons.shop,
Icons.people
];
这是我的类别类:
class Category {
final String name;
final ColorSwatch color;
final List<Servicio> units;
final IconData iconLocation;
}
这就是我构建类别的方式:
var category = Category(
name: key,
units: units,
color: _baseColors[categoryIndex],
iconLocation: _icons[categoryIndex],
);
我知道错误说我给出的是字符串而不是 IconData,但我知道我的变量确实是 IconData。
任何帮助,将不胜感激。
解决方案
如果您的错误是运行时错误而不是编译错误,则您的 var categoryIndex 值超过了 _icons 列表中存储的图标数。并且 String 可能是 List 类抛出的异常消息。
推荐阅读
- python - 如何打印 xpath 匹配节点的代码?
- python - 使用带有 @interact 的按钮
- oauth-2.0 - OAuth2 - 如何将 clientId/客户端密码列表添加为 JSON 文件,而不是单个客户端 ID/客户端密码?
- android - 依赖关系解析为不兼容的版本
- postgresql - 带有 json 数据的 GORM 数据库列
- c# - 显示 PDF 文档 C#
- python - 将我的数据划分为网格并在每个框中选择一个点
- reactjs - 如何用 React JS 实现 Adonis JS 版本 4.1 的 WebSocket
- python - 部署到 Elastic-Beanstalk 时出现瞭望塔区域错误的 Django
- html - HTML 向右浮动导致两行。如何调整边距/填充