我不明白从子级中删除方括号[]后如何使用列小部件。我想从字符串元素列表中创建卡片列表。我使用了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(),
)
],
)
第一个代码段显示以下错误:无法将元素类型“列表”分配给列表类型“小部件”。
第二个没有显示任何错误
答案 0 :(得分:0)
由于孩子需要小部件列表。但是在您的第一种情况下,它会获取列表列表,因为 flights.map 将返回Card窗口小部件列表。这样就变成了
Column(
children:[ []
],
)
但在第二种情况下, children 仅获得所需的小部件列表。就这样,
Column(
children: []
)
这是正确的格式。