用于flutter StreamBuilder中空值的空检查操作符


Widget build(context) {
return Scaffold(
appBar: header(context, isApp: true, titleText: 'Instagram'),
body: StreamBuilder<QuerySnapshot>(
stream: userRef.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
circularProgress();
}
final List<Text> list = snapshot.data!.docs
.map((user) => Text(user['username']))
.toList();
return Container(
child: ListView(
children: list,
),
);
},
),
);
}

错误消息似乎指向这一行的空检查操作符

final List<Text> list = snapshot.data!.docs
.map((user) => Text(user['username']))
.toList();

暗示快照。此时数据为空。

显然,如果没有返回数据,您不打算执行此代码。

因为这段代码

if (!snapshot.hasData) {
circularProgress();
}

没有返回语句,继续执行。

更改为

if (!snapshot.hasData) {
return circularProgress();
}

应该能解决你的问题

最新更新