尽管我已尝试应用我在 SO 上看到的大部分建议更改,但到目前为止没有任何效果。我在这里遇到了这个常见的异常 - roleRaw!.map((roleJson) => RoleModel.fromJson(roleJson)).toList();
这是代码
class RoleRepository {
final RoleService roleService;
RoleRepository({required this.roleService});
Future<List<RoleModel>> fetchRoles() async {
final roleRaw = await roleService.fetchRoles();
final jSonConvert = roleRaw!.map((roleJson) => RoleModel.fromJson(roleJson)).toList();
return jSonConvert;
}
}
错误信息
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
E/flutter (20753): #0 RoleRepository.fetchRoles (package:etransfa/christdoes/bank/persistence/repository/role_repository.dart:11:35)
E/flutter (20753): <asynchronous suspension>
我能做什么?
答案 0 :(得分:0)
你的方法 roleService.fetchRoles()
可以返回 null?在这种情况下,问题是当您使用空检查运算符 (!) 时,它会在值为空时抛出错误。
在使用之前尝试验证响应:
Future<List<RoleModel>> fetchRoles() async {
final roleRaw = await roleService.fetchRoles();
if (roleRaw != null) {
final jSonConvert = roleRaw!.map((roleJson) =>
RoleModel.fromJson(roleJson)).toList();
return jSonConvert;
} else {
// Handle null return here
}
}