问题描述

A value of type 'Object?' can't be assigned to a variable of type 'int?'

原因分析

Dart 2.12 版本之后,如果你从 Map 中提取值,Dart 可能会将其类型标记为 Object?,因为 Dart 不确定该值是否存在或其实际类型是什么。

解决方法

在这种情况下,你可以使用 as 关键字来明确告诉 Dart 该值的类型,或者使用空值检查来确保值不为 null。以下是两种可能的修改:

使用 as 关键字:

int groupId = (groupData[0]['groupId'] as int?);
使用空值检查:
dart
Copy code
int? groupId = groupData[0]['groupId'] as int?;
if (groupId != null) {
  // 这里可以安全地使用 groupId
}

选择其中一种方法,根据你的代码风格和偏好进行修改。