我正在学习使用FLUTTER在DART中编程 但我处在一种我不了解的情况下, 我正在使用此功能获取SharedPreferences数据
Iterable decoded = jsonDecode(data);
List<Item> result = decoded.map((x) => Item.fromJson(x)).toList();
但是如果我尝试发送为null将会给出错误! 所以我把这个如果
if(data != null)
但是它甚至通过了null
我的代码
Future load() async{
var prefs = await SharedPreferences.getInstance();
var data = prefs.getString('data');
// justing for testing
print(data);
if(data != null){
// another test
print("NOT IS NULL");
Iterable decoded = jsonDecode(data);
List<Item> result = decoded.map((x) => Item.fromJson(x)).toList();
setState(() {
widget.itens = result;
});
}else{
print("IS NULL");
}
}
,然后查看调试日志
Restarted application in 3.464ms.
flutter: [null]
flutter: NOT IS NULL
对不起我的英语不好
答案 0 :(得分:1)
请注意,print(data)
没有打印null
;它打印了[null]
(即带有方括号)。
这意味着data
不是 null
。它是一个List
,其中包含单个null
元素。
答案 1 :(得分:0)
包含单个 null 元素的列表。此处的数据不为null。 尝试在sharedPreference中添加新元素,然后再次进行测试。
答案 2 :(得分:-1)
仅尝试if(data)
,因为该值可以是不确定的,在这种情况下,它是一个假值,但不等于null。