【问题标题】:Handle null value in Dart / Flutter在 Dart / Flutter 中处理空值
【发布时间】:2020-01-15 11:22:45
【问题描述】:

我有这个 User 类,然后是一个 Firestore 文档,它可能包含也可能不包含 photoURL 或其他一些值。问题是,当我尝试创建用户时,我得到了这个异常,因为某些值是 Null。

我试过这样处理:

var photoURL = snapshot.data['photoURL']  ??= '';

但它似乎不起作用。

谁能分别解释在 Dart/Flutter 中处理 Null 值的最佳实践?

编辑:我正在检查 snapshot.exists 之前是否存在,如果我创建的用户省略了我知道为 Null 的值,它会正确创建它。

编辑 2:当我尝试像这样处理空列表时,我发现问题出现了:

var favorites =  snapshot.data['favorites'] ?? [''];

【问题讨论】:

  • 你在寻找'photoURL'之前检查snapshot.hasData吗?
  • 如果 (snapshot.exists)
  • 我之前尝试过这个,但它不起作用,然后我阅读了这篇文章medium.com/@thinkdigitalsoftware/…并将其更改为??=

标签: flutter dart


【解决方案1】:

当我将它转换为 Json 时,我似乎以错误的方式初始化了该值。

我这样处理空数组

Map<String, dynamic> toJson() => {
   'favorites' : favorites ?? '',
}

什么时候应该:

Map<String, dynamic> toJson() => {
   'favorites' : favorites ?? [''],
}

所以当我尝试将一个空数组分配给字符串时,它正在抛出。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2020-05-27
    • 2021-01-03
    • 2020-10-31
    • 2021-03-02
    • 2021-06-28
    • 2021-04-06
    • 2021-11-04
    相关资源
    最近更新 更多