gpt4 book ai didi

flutter - flutter 如何在获取快照的属性值时防止空值

转载 作者:行者123 更新时间:2023-12-03 03:39:54 25 4
gpt4 key购买 nike

我有从Firestore返回的数据,返回的是null或暂时返回null。

我进行检查以确保快照具有以下数据:

parentSnapshot.data != null && parentSnapshot.hasData

我还尝试使用三元数来保护属性为null:
var isParent = parentSnapshot.data['isParent'] ?? false;

但是由于某些原因,我仍然会得到:
The method '[]' was called on null
Reciever: null
Tried calling: []("isParent")

它必须是null安全的,因此如果找不到该属性,则该变量始终返回false,因此我控制显示的内容。

这是完整的代码:
return StreamBuilder<Object>(
stream: Firestore.instance.collection(parent).document(
widget.menuItemsList[index]['name']).snapshots(),
builder: (BuildContext context, AsyncSnapshot parentSnapshot) {

if (parentSnapshot.data != null && parentSnapshot.hasData) {
var isParent = parentSnapshot.data['isParent'] ?? false;

if (isParent){
return GridButtons(widget.menuItemsList[index]['name'], animation, index, parent, collection, parentSnapshot, widget.menuItemsList, widget.listKey);
} else {
return SizedBox(width: 0, height: 0,);
}

} else {
return SizedBox(width: 0, height: 0,);
}
}
);

谢谢你的帮助

最佳答案

我认为下面的代码将帮助您

我们还必须检查长度

如果条件仅接受dart语言中的 bool(boolean) 值

if (parentSnapshot.hasData && parentSnapshot.data != null && parentSnapshot.data.length > 0 ) {
var isParent = parentSnapshot.data['isParent'] != null ? true : false;

if (isParent){
return GridButtons(widget.menuItemsList[index]['name'], animation, index, parent, collection, parentSnapshot, widget.menuItemsList, widget.listKey);
}

关于flutter - flutter 如何在获取快照的属性值时防止空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57751103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com