尝试添加图标时遇到此错误:类型'String'不是'函数结果'类型'IconData'的子类型

时间:2020-09-23 00:43:22

标签: flutter dart

我正在尝试将图标动态添加到菜单中。我有一个具有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],
      );

我知道错误消息说我给出的是String而不是IconData,但我知道我的变量确实是IconData。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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