flutter 无法将元素类型“Set< DetailsCard>”分配给列表类型“Widget”

z2acfund  于 2023-10-22  发布在  Flutter
关注(0)|答案(2)|浏览(132)
Column(
          children: [
            Widget1(),
            Widget2(),
            Expanded(
              child: SingleChildScrollView(
                child: Container(
                  child: Column(
                    children: [
                              for(var i =0 ;i<categories.length;i++){
                                DetailsCard(catName: categories[i]);
                              }
                    ],
                  ),
                ),
              ),
            ),
          ],
        )

在上面的代码中,我想根据类别列表中的项目添加多个小部件。但是当我尝试使用for循环时,我总是得到“The element type 'Set' can't be assigned to the list type 'Widget'.”错误。

b1uwtaje

b1uwtaje1#

[...]中使用for语句,如下所示:

Column(
          children: [
            Widget1(),
            Widget2(),
            Expanded(
              child: SingleChildScrollView(
                child: Container(
                  child: Column(
                    children: [
                              for(var i =0 ;i<categories.length;i++)
                                DetailsCard(catName: categories[i])
                    ],
                  ),
                ),
              ),
            ),
          ],
        )

不要在[...]语句中添加{};,这是非法的

r7xajy2e

r7xajy2e2#

我通常喜欢在IterablesListSets)上使用.map()。例如,您可以使用:用途:

Column(
   children: categories.map((category) => Text(category)).toList(),
),

如果Column中有其他Widgets,而不是从可迭代对象生成的Widgets,则可以使用spread操作符...

Column(
  children: [
     ...categories.map((category) => Text(category)),
     Text('This is a text'),
  ],
),

相关问题