元素类型'List <Card>'不能分配给列表类型'Widget'

时间:2019-07-20 09:00:45

标签: flutter dart

我不明白从子级中删除方括号[]后如何使用列小部件。我想从字符串元素列表中创建卡片列表。我使用了map方法。

我在列窗口小部件内使用了map方法,它不断显示错误The element type 'List<Card>' can't be assigned to the list type 'Widget'。我通过将flights.map((element){})包装在另一个列小部件中,然后删除了子级的[]来解决了这个问题。

Column(
              children:[ flights.map(
                    (element) => Card(
                  child: Column(
                    children: <Widget>[
                      Image.asset('images/flight.jfif'),
                      Text(element)
                    ],
                  ),
                ),
              ).toList(),]
            )
          ],
)

之后

Column(
              children: flights.map(
                    (element) => Card(
                  child: Column(
                    children: <Widget>[
                      Image.asset('images/flight.jfif'),
                      Text(element)
                    ],
                  ),
                ),
              ).toList(),
            )
          ],
        )

第一个代码段显示以下错误:无法将元素类型“列表”分配给列表类型“小部件”。

第二个没有显示任何错误

1 个答案:

答案 0 :(得分:0)

由于孩子需要小部件列表。但是在您的第一种情况下,它会获取列表列表,因为 flights.map 将返回Card窗口小部件列表。这样就变成了

Column(
       children:[ []
    ],
)

但在第二种情况下, children 仅获得所需的小部件列表。就这样,

Column(
       children: []  
)

这是正确的格式。