我正在尝试列出我的迭代列表,但是会引发以下错误
发生异常。 ArgumentError(无效的参数(输入): 不能为空)
在
的toList()上List<ContactModel> iterable = (await pluginContactService.ContactsService.getContacts(withThumbnails: false))
.where((contact) => contact.phones.firstWhere((item) => item.label == 'mobile', orElse: () => null)?.value != null)
.map((contact) => ContactModel(
contact.displayName, contact.phones.firstWhere((item) => item.label == 'mobile').value)).toList(growable: false);
它会不断重复此异常。如果我关闭了例外,则会返回一个包含预期结果的列表。该异常该怎么办?
答案 0 :(得分:0)
此错误:ArgumentError(Invalid argument(s) input: must not be null)
意味着.toList(growable: false);
在null
上进行了呼叫。
因此,在调用.toList()
或使用诸如?? []
之类的默认值之前,您应该检查它是否为空。
?? []
可以解决。
final tmp = (await pluginContactService
.ContactsService
.getContacts(withThumbnails: false)
)
.where(
(contact) => contact.phones.firstWhere(
(item) => item.label == 'mobile',
orElse: () => null
)?.value != null
)
.map((contact) => ContactModel(
contact.displayName,
contact.phones.firstWhere(
(item) => item.label == 'mobile'
).value)
);
List<ContactModel> iterable = tmp == null? [] : tmp.toList(growable: false);
答案 1 :(得分:-1)
在调试会话设置中关闭“Break on All Exception”可以解决这个问题。