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

Flutter报错:List<dynamic>无法赋值给List<Map<String,Object>>类型参数

Flutter拆分Widget类型报错修复方案

报错信息

The argument type 'List' can't be assigned to the parameter type 'List<Map<String, Object>>'

触发场景

开发Flutter应用时,为提升代码整洁度将逻辑拆分为独立Widget,传参时触发上述类型不匹配错误。

错误原因

main.dart中定义问题列表_questions时,仅声明为final List _questions = const [...],未指定集合的泛型类型,Dart会默认将该列表推断为List<dynamic>动态类型;但接收参数的Quiz组件中,questions入参要求的类型为强类型List<Map<String, Object>>,动态类型集合无法直接赋值给强类型参数,因此抛出错误。

修复步骤

将_questions变量的类型声明补充明确泛型即可,修改对应代码片段:

// 原代码:final List _questions = const [
// 替换为以下带明确泛型的声明
final List<Map<String, Object>> _questions = const [
    {
      'questionText': 'who\'s your favorite football player? ',
      'Answers': ['Cristiano', ' Messi', 'Mbappe', 'Benzema']
    },
    {
      'questionText': 'who\'s your favorite Ping Pong player',
      'Answers': [
        'Noshad Alamian',
        'Nima Alamian',
        'Aria Amiri',
        'Matin Lotfollah Nassabi'
      ]
    },
    {
      'questionText': 'what\'s your favorite color',
      'Answers': ['Grey', 'Black', 'Green', 'Red']
    },
    {
      'questionText': 'what\'s your favorite football club',
      'Answers': ['Real Madrid', 'Barcelona', 'Manchester United', 'Liverpool']
    }
  ];

注意事项

Dart为强类型语言,定义List、Map这类集合类型变量时,建议明确标注泛型类型,既可以避免这类类型不匹配报错,也能让IDE提供更精准的代码补全、错误检查提示。

内容的提问来源于stack exchange,提问作者Pooyanha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:15:42