首页 > 解决方案 > 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

对不起我的英语不好

标签: flutterdartsharedpreferences

解决方案


注意print(data)没有打印null;它打印[null](即用方括号)。

意味着data不是。它是一个包含单个元素的。 nullListnull


推荐阅读