Flutter报错:List<Row>无法赋值给Widget列表类型
解决Flutter中"The element type 'List' can't be assigned to the list type 'Widget'"错误
问题根源是你在Column的children里额外嵌套了一层方括号,导致把summaryData.map(...).toList()生成的List<Row>当成了单个元素,而Column的children要求是List<Widget>类型的元素集合,不能是嵌套列表。
修正方案
直接移除summaryData.map(...).toList()外层的方括号,让生成的List<Row>(Row属于Widget)直接作为children的值:
import 'package:flutter/material.dart'; class QuestionsSummary extends StatelessWidget{ QuestionsSummary(this.summaryData, {super.key}); final List<Map<String, Object>> summaryData; @override Widget build(BuildContext context) { return Column( children: summaryData.map((data){ return Row( children: [ Text(((data['questions'] as int)+ 1).toString()), ], ); }).toList(), ); } }
若需添加其他Widget
如果要在children中同时包含其他固定Widget和生成的列表,可以使用扩展运算符...将列表展开,确保每个元素都是单独的Widget:
@override Widget build(BuildContext context) { return Column( children: [ const Text('答题总结'), ...summaryData.map((data){ return Row( children: [ Text(((data['questions'] as int)+ 1).toString()), ], ); }).toList(), ], ); }
内容的提问来源于stack exchange,提问作者Silikazi
相关产品推荐
相关产品推荐

