我不知道为什么我得到了空值错误使用的空检查运算符。在将其添加到列表之前,我使用了一个if条件来检查它是否是。
在print语句的下面打印预期的数据。问题出在我在for循环中对列表进行加法的那一行上。
Future<List<String>?> fetchContacts(List<String> contacts) async {
QueryResult result = await _client().query(
QueryOptions(
document: gql(_fetchContacts),
variables: {
'contacts': contacts,
},
),
);
List<String>? contacts;
if (result.data != null) {
int status = result.data!['fetchContacts']['status'];
int resultCount = result.data!['fetchContacts']['users'].length;
if (status == 200 && resultCount != 0) {
for (int i = 0; i < resultCount; i++) {
if (result.data?['fetchContacts']['users'][i]['userPhoneNumber'] !=
null) {
contacts!.add(result.data?['fetchContacts']['users'][i]
['userPhoneNumber']);
print(result.data!['fetchContacts']['users'][i]
['userPhoneNumber']);
}
}
}
}
return contacts;
}
字符串
4条答案
按热度按时间4dc9hkyq1#
你永远不会初始化你的列表。不要将其设置为空,而是尝试将其设置为空:
字符串
kh212irz2#
如果你想让你的列表为空,请使用下面的代码
字符串
qzwqbdag3#
我在这里看到的问题是你没有初始化联系人列表变量。你提到它是一个空值,但你没有检查天气是否为空。在没有初始化变量列表的情况下,您已经调用了add函数。这就是为什么你得到了异常消息。
int [];
snz8szmq4#
我建议在使用之前初始化你的联系人列表。在这种情况下,您不必担心空检查。
字符串
或者,您可以在使用它之前检查它是否为null:
型