flutter - if(data != null) NOT IS NULL 被忽略
问题描述
我正在学习使用 FLUTTER 在 DART 中编程,但我处于一种我不明白的情况,我正在使用这个函数来获取 SharedPreferences 数据
Iterable decoded = jsonDecode(data);
List<Item> result = decoded.map((x) => Item.fromJson(x)).toList();
但如果我尝试发送为 null 将给出错误!所以我把这个如果
if(data != 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
对不起我的英语不好
解决方案
注意print(data)
没有打印null
;它打印[null]
(即用方括号)。
这意味着data
不是。它是一个包含单个元素的。 null
List
null
推荐阅读
- python - Microsoft SQL 使用 pyodbc,从数据库表中存储变量?
- java - Hibernate - 遇到失败回滚失败的提交
- c++ - 动态创建数组时未使用但设置变量问题
- r - 嵌套for循环递增的问题
- mysql - Laravel:如果关系计数有某些条件,则获取模型
- oracle-apex - 如何不加载带有区域(150)的整个页面,而仅加载页面中打开的当前选项卡中的那些区域?在顶级甲骨文中
- spring-boot - 单元测试 MockHttpServletRequest 不返回内容类型
- android - Android Kotlin:在显示 Snackbar 之前检查视图是否不为空
- typescript - 类型基于 Typescript 中的字符串派生
- laravel - 使用 Laravel 分页和 Bootstrap-vue 分页