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

Flutter开发报错:Undefined name 'questionList' 求助

问题原因及解决方法

你遇到的Undefined name 'questionList'错误,是因为你把questionList定义成了Question类的实例属性——只有创建Question对象后才能访问它,但你需要直接调用这个列表,所以得调整它的定义方式。

方案一:将列表改为类的静态属性

修改/lib/model/question_model.dart中的代码,给questionList加上static关键字,让它成为类的静态成员:

class Question {
  String question;
  String answer1;
  String answer2;
  int trueAnswer;
  String imageAddress;

  Question(this.question, this.answer1, this.answer2, this.trueAnswer,
      this.imageAddress);

  // 改为静态属性,属于类而非实例
  static List<Question> questionList = [
    Question('Where is Persian Gulf?', 'Iran', 'Iraq', 1,
        'assets/images/persiangulf.png'),
    Question('Which one is most population country in the world?', 'India',
        'China', 2, 'assets/images/most.png'),
    Question('Which one created GTA series?', 'Ubisoft', 'Rockstar', 1,
        'assets/images/GTA.png'),
    Question('Which one is a rock band?', 'Queen', 'Metallica', 1,
        'assets/images/guitar.png'),
  ];
}

之后在主代码中调用时,需要通过类名访问:

checkAnswer(){
    setState(() {});
    int myAnswer = isOnePressed?1:2;
    // 通过类名访问静态列表
    Question.questionList[currentQuestionNumber];
  }

方案二:将列表移到类外部作为全局变量

如果不想用静态属性,也可以把questionList放在Question类外面,作为全局变量:

class Question {
  String question;
  String answer1;
  String answer2;
  int trueAnswer;
  String imageAddress;

  Question(this.question, this.answer1, this.answer2, this.trueAnswer,
      this.imageAddress);
}

// 全局列表,可直接在其他文件中调用
List<Question> questionList = [
  Question('Where is Persian Gulf?', 'Iran', 'Iraq', 1,
      'assets/images/persiangulf.png'),
  Question('Which one is most population country in the world?', 'India',
      'China', 2, 'assets/images/most.png'),
  Question('Which one created GTA series?', 'Ubisoft', 'Rockstar', 1,
      'assets/images/GTA.png'),
  Question('Which one is a rock band?', 'Queen', 'Metallica', 1,
      'assets/images/guitar.png'),
];

这种方式下,主代码中的调用不需要修改,但要确保主文件顶部正确导入了model文件:

import 'package:你的项目名/lib/model/question_model.dart';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:12:43