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

Flutter测验应用使用map传递分数时报位置参数过多错误如何解决

问题根因

你触发的报错本质是调用了一个无参数的函数,却给它传入了1个参数,结合你给出的代码,90%以上的概率问题出在quiz.dart文件里的answerQuestion函数定义:

  • 你当前的answerQuestion是无参数定义的,格式类似:
void answerQuestion() {
  // 你原来的逻辑代码
}
  • 但你在map循环中调用它时传入了answer['score']作为参数,因此触发参数不匹配的报错。
解决方案
  1. 修改quiz.dart中answerQuestion的函数定义,增加分数参数:
// 增加int类型的score参数
void answerQuestion(int score) {
  // 你原来的逻辑不变,新增分数统计逻辑即可,例如:
  // totalScore += score;
  setState(() {
    questionIndex++;
  });
}
  1. 为了避免类型安全提示,调用时可以显式将answer['score']、answer['text']转为对应类型:
return Answer(() => answerQuestion(answer['score'] as int), answer['text'] as String);
补充排查路径

如果修改answerQuestion定义后报错仍然存在,请检查Question组件的构造函数定义,确保它声明了接收1个字符串类型的位置参数,和你调用时传入的参数数量匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:42:00