提问人:dtenTV 提问时间:1/23/2023 更新时间:1/23/2023 访问量:52
检查 myFinal == null 在 flutter 中不起作用
check of myFinal == null don't work in flutter
问:
我的最终声明检查它是否为 null 在 flutter 中不起作用if (extractedData == null) { return; }
Future<void> fetchAndSetOrders() async {
const url = 'https://flutter-update.firebaseio.com/orders.json';
final response = await http.get(url);
final List<OrderItem> loadedOrders = [];
final extractedData = json.decode(response.body) as Map<String, dynamic>;
if (extractedData == null) {
return;
}
}
我试着看看如果
extractedData == null
但是 flutter 说 *操作数不能为空,所以条件总是真的。*
答:
0赞
Code on the Rocks
1/23/2023
#1
您需要使 extractedData 可为 null:
// Add the ? at the end
final extractedData = json.decode(response.body) as Map<String, dynamic>?;
评论
0赞
Chuck Batson
1/23/2023
只有一种情况会返回,那就是 。我不认为让它为空是没有意义的,除非有人明确期望可能是文本。json.decode()
null
json.decode('null')
response.body
'null'
0赞
Munsif Ali
1/23/2023
#2
实际上,您正在提供 Map<String, dynamic 类型的 extractedData 变量数据>如果 json.decode() 返回一个 null 值,它将不会为 null 并且会抛出错误,因此如果您想要使其能够为 null,请将
final extractedData = json.decode(response.body) as Map<String, dynamic>;
对此
final extractedData = json.decode(response.body) as Map<String, dynamic>?;
所以extractedData的类型将是Map<String,dynamic>?它也可以存储 null 值,然后您可以在其上使用条件。
评论
0赞
Chuck Batson
1/23/2023
只有一种情况会返回,那就是 。我不认为让它为空是没有意义的,除非有人明确期望可能是文本。json.decode()
null
json.decode('null')
response.body
'null'
0赞
Munsif Ali
1/23/2023
有时 response.body 作为 null 返回,有很多因素导致这种情况,如果您确定不会返回 null,则无需使用此条件 if (extractedData == null)
0赞
dtenTV
1/27/2023
La solution a bien marché pour moi.merci @Munsif 阿里
0赞
Munsif Ali
1/28/2023
你能用英文解释一下吗
评论
extractedData == null
json.decode()
null