Flutter类型不匹配报错:'quiz question'实例无法转为String
Flutter测验结果页类型不匹配崩溃解决方案
问题根源
错误提示instance of 'quiz question':type 'quiz question' not a subtype of type 'string',本质是你在结果页代码里把QuizQuestion类的实例直接当成String类型使用了(比如直接传给Text组件),但Text组件仅接受String类型,因此触发类型转换错误,导致页面崩溃。
解决步骤
- 确认QuizQuestion类的属性:从你提供的类截图来看,它应该包含
questionText(问题文本)这类字符串属性。 - 修正展示逻辑:不要直接传入QuizQuestion实例,而是调用它的字符串属性:
- 错误写法:
Text(quizQuestion) // 直接传实例,类型不匹配 - 正确写法:
Text(quizQuestion.questionText) // 传入类内的字符串属性
- 错误写法:
- 批量展示答案摘要:如果要列出所有问题及答案,遍历存储的QuizQuestion列表,逐个取出对应字段:
// 假设你保存了所有测验问题的列表 List<QuizQuestion> quizQuestions = [...]; // 结果页中构建展示组件 Column( children: quizQuestions.map((question) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('问题:${question.questionText}'), Text('正确答案:${question.correctAnswer}'), // 假设类中有correctAnswer属性 ], ); }).toList(), ) - 检查参数传递:如果是页面跳转时传参,别把QuizQuestion实例误当成String传递,确保在结果页正确接收并解析实例的属性。
内容的提问来源于stack exchange,提问作者cfranco87
相关产品推荐
相关产品推荐

