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

Flutter运行报错:Set<Map<String,Object>>类未定义[]运算符如何解决

报错根因

你声明questions变量时使用var让Dart自动推断类型,Dart的类型推断机制误将该变量判定为Set<Map<String, Object>>类型,Set集合不支持下标[]访问元素,因此调用questions[_questionIndex]时触发报错。

修复方案
  • 第一步:给questions变量显式指定类型为List<Map<String, dynamic>>,替换原有var声明即可,修改后代码如下:
// 替换原有var questions = [ 即可,后续集合内容不变
List<Map<String, dynamic>> questions = [
  {
    'questionText': 'What is  your favorate Colour',
    'answers': ['red', 'balck ', 'yellow', 'blue']
  },
  {
    'questionText': 'What is  your favorate Animal',
    "answers": ['Lion', 'Chettah ', 'Leopard', 'Cat']
  },
  {
    'questionText': 'What is  your favorate Movie',
    'answers': ['hai', 'hello ', 'hoe', 'are you']
  }
];
  • 第二步(可选):如果后续运行还出现String类型不匹配的提示,可将取值代码补充类型转换:
Question(
  (questions[_questionIndex]['questionText'] as String),
),
其他提示

日志里的签名警告是iOS端的配置问题,本地调试不会影响运行,如果需要打包iOS安装包,打开项目ios/Runner.xcworkspace文件,在Xcode的Runner目标的「Signing & Capabilities」页签选择自己的开发团队即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:36:02