在SummaryItem(下面的代码)中,当我试图将question_index转换为int时,它显示一个错误,说类型'Null'不是类型转换中类型'int'的子类型。在QuestionIdentifier中(图片如下),question_index被设置为int。为什么显示这些错误?
import 'package:adv_basics/question_identifier.dart';
import 'package:flutter/material.dart';
class SummaryItem extends StatelessWidget {
final Map<String, Object> iconData;
const SummaryItem(this.iconData, {super.key});
@override
Widget build(BuildContext context) {
final isCorrectAnswer =
iconData["correct-answer"] == iconData["user-answer"];
return Row(
children: [
QuestionIdentifier(
correctAnswer: isCorrectAnswer,
questionIndex: iconData["question-index"] as int,
),
const SizedBox(width: 5),
Expanded(
child: Column(
children: [
Text(
iconData["question"] as String,
),
Text(iconData["correct_answer"] as String),
Text(iconData["user_answer"] as String),
],
),
)
],
);
}
}
2条答案
按热度按时间cwdobuhd1#
您看到这个错误是因为
iconData["question-index"]
的值是null
。方式一:可以使用空值感知运算符
?
。如果
iconData["question-index"]
的值是null
,它不会抛出错误。在
QuestionIdentifier
类中也可以使questionIndex
字段为空。方法二:在将
iconData["question-index"]
传递给不支持空参数的新子小部件之前,您应该检查其值以确保is不是null
值。n9vozmp42#
iconData[“question-index”]为null