Flutter传递自定义Lesson对象至ExamScreen时遇Invalid constant value错误
解决
Invalid constant value错误 错误原因
你在调用ExamScreen时使用了const关键字:
navigateTo(context, const ExamScreen(lesson: lesson,));
const构造函数要求所有传入的参数必须是编译时常量,但lesson是运行时传入的变量,无法在编译阶段确定其值,因此不符合const的要求,触发错误。
解决方案
去掉const关键字,直接创建ExamScreen实例即可:
navigateTo(context, ExamScreen(lesson: lesson));
如果后续不需要ExamScreen作为常量实例使用,也可以直接将其构造函数的const修饰符移除,避免后续误用:
class ExamScreen extends StatefulWidget { final Lesson? lesson; ExamScreen({super.key, this.lesson}); // 移除const @override State<ExamScreen> createState() => _ExamScreenState(); }
内容的提问来源于stack exchange,提问作者Ahmed El Sayed
相关产品推荐
相关产品推荐

