首页 > 解决方案 > 尝试添加图标时出现此错误:类型“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。

任何帮助,将不胜感激。

标签: flutterdart

解决方案


如果您的错误是运行时错误而不是编译错误,则您的 var categoryIndex 值超过了 _icons 列表中存储的图标数。并且 String 可能是 List 类抛出的异常消息。


推荐阅读