在Dart / Flutter中处理空值

时间:2019-09-13 15:03:10

标签: flutter dart

我有一个User类,然后有一个Firestore文档,该文档可能包含也可能不包含photoURL或某些其他值。问题是,当我尝试创建用户时,由于某些值为Null,因此会出现此异常。

我试图这样处理:

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

但似乎不起作用。

有人可以解释在Dart / Flutter中分别处理Null值的最佳做法吗?

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

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

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

1 个答案:

答案 0 :(得分:0)

当我将其转换为Json时,似乎错误地初始化了该值。

我这样处理空数组

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

应该在什么时候出现:

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

所以当我尝试为String分配一个空数组时,它就抛出了。