Flutter中按照教程编写带构造函数的类时报错,代码一致仍无法修复
报错原因及修复方案
你的代码报错主要来自两个问题:
- 类名拼写错误:你定义的类名为
Qeustion,正确拼写应为Question,如果调用侧用了正确拼写就会触发未找到类的报错。 - 未适配Dart空安全:你参考的旧教程基于非空安全的Dart版本编写,Dart 2.12及以上版本默认启用空安全规则,非空类型的实例变量必须在构造函数执行完成前完成赋值,你当前的写法不符合空安全要求。
推荐修复写法(符合最新Dart规范,调用逻辑和旧教程兼容)
class Question { String questionText; String questionImage; bool questionAnswer; Question({ required this.questionText, required this.questionImage, required this.questionAnswer, }); }
调用示例:
var sampleQuestion = Question( questionText: "这是测试题目", questionImage: "assets/test.png", questionAnswer: true, );
保留原有参数命名的修复写法
如果你想保留原来的q/i/a参数名,可以用初始化列表的方式实现,符合空安全要求:
class Question { String questionText; String questionImage; bool questionAnswer; Question({required String q, required String i, required bool a}) : questionText = q, questionImage = i, questionAnswer = a; }
如果你的项目手动关闭了空安全,只需要修正类名拼写即可正常运行。
内容的提问来源于stack exchange,提问作者AhamdTübingen
相关产品推荐
相关产品推荐

