首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“Iterable<Widget>”不能分配给列表类型“Widget”

“Iterable<Widget>”不能分配给列表类型“Widget”
EN

Stack Overflow用户
提问于 2021-08-05 18:07:06
回答 2查看 42关注 0票数 1

我正在学习flutter,我试着从fireship.io上重新创建它。

我复制了代码,得到了这个错误:

代码语言:javascript
复制
The element type 'Iterable<Widget>' can't be assigned to the list type 'Widget'.

代码:

代码语言:javascript
复制
    List items = [
        MenuItem(x: -1.0, name: 'house'),
        MenuItem(x: -0.5, name: 'planet'),
        MenuItem(x: 0.0, name: 'camera'),
        MenuItem(x: 0.5, name: 'heart'),
        MenuItem(x: 1.0, name: 'head'),
    ];



Container(
            // <-- 4. Main menu row
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceAround,
              crossAxisAlignment: CrossAxisAlignment.end,
              children: [items.map((item) => _flare(item))],
            ),
          ),

MenuItem类:

代码语言:javascript
复制
class MenuItem {
  final String name; // name is the filename of the .flr asset
  final double
      x; // x is the X-axis alignment of the item (-1 is far left, 1 is far right).
  MenuItem({required this.name, required this.x});

我找到了一个具有相同错误的question,但我无法解决它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-05 18:14:31

map返回iterable,所以你必须把它转换成list。你也不需要在那里使用[]。

代码语言:javascript
复制
Container(
   child: Row(
      mainAxisAlignment: MainAxisAlignment.spaceAround,
      crossAxisAlignment: CrossAxisAlignment.end,
      children: items.map((item) => _flare(item)).toList(),
   ),
),
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 18:14:04

试试这条路

代码语言:javascript
复制
  children: [
            ...items.map((item) => _flare(item)).toList(),
          ],
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68671552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档