You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:46:04