Flutter调用YouTube API时处理tags字段返回null的问题
你遇到的问题是当YouTube API返回的tags字段为null时,原代码里的强制非空断言!会直接触发报错。你尝试的三目运算符写法无效,大概率是因为多了没必要的!断言,或者模型中tags的类型定义和返回值不匹配。
给你两种可行的解决方案:
方案一:返回null(适用于模型中tags定义为List<String>?的情况)
直接在三目运算符中去掉!,因为已经通过json["tags"] == null判断过非null分支的安全性,Dart的类型推断会自动识别该分支下json["tags"]不为null:
tags: json["tags"] == null ? null : List<String>.from(json["tags"].map((x) => x)),
方案二:返回空列表(适用于模型中tags定义为List<String>不允许为null的情况)
用??空值合并操作符,当json["tags"]为null时直接替换为空列表,避免转换报错:
tags: List<String>.from(json["tags"] ?? []),
如果还是有问题,可以检查你的模型类中tags字段的类型定义,确保和返回值类型一致。比如定义为List<String>就不能返回null,必须用方案二;定义为List<String>?则两种方案都可选。
内容的提问来源于stack exchange,提问作者PRANESH
相关产品推荐
相关产品推荐

