getter 'docs' 被调用为 null。接收者:null 尝试调用:docs
The getter 'docs' was called on null. Receiver: null Tried calling: docs
当我 运行 我的应用程序时,总是出现错误:
The getter 'docs' was called on null.
Receiver: null
Tried calling: docs
但一切正常,我该如何解决?
我认为有一个 flutter 的更新使这段代码出错了,因为我遇到了很多这样的问题。
我代码中的重要部分:
return StreamBuilder(
stream: FirebaseFirestore.instance
.collection('medicine')
.where('userId', isEqualTo: user.uid)
.snapshots(),
builder: (context, snapshot) {
final doc = snapshot.data.docs;
return ListView.builder(
itemCount: doc.length,
itemBuilder: (ctx, index) {
if (snapshot.data == null) {
return Center(
child: CircularProgressIndicator(),
);
}
return Container(
child: Stack(
children: [
Row(
children: [
Flexible(
child: Column(
children: [
Text(
'اسم الدواء: ' + doc[index]['medicationName'],
textAlign: TextAlign.start,
),
],
),
)
],
),
],
),
);
},
));
第一个流可以发出空快照。
在访问文档之前,您应该检查快照是否有数据:
if(!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
}
// if it has data, do your thing:
final doc = snapshot.data.docs;
return ListView( ..... )
使您的代码正常工作的另一种解决方案是使用 null safety 并将 snapshot.data 替换为 snapshot?.data
当我 运行 我的应用程序时,总是出现错误:
The getter 'docs' was called on null.
Receiver: null
Tried calling: docs
但一切正常,我该如何解决? 我认为有一个 flutter 的更新使这段代码出错了,因为我遇到了很多这样的问题。 我代码中的重要部分:
return StreamBuilder(
stream: FirebaseFirestore.instance
.collection('medicine')
.where('userId', isEqualTo: user.uid)
.snapshots(),
builder: (context, snapshot) {
final doc = snapshot.data.docs;
return ListView.builder(
itemCount: doc.length,
itemBuilder: (ctx, index) {
if (snapshot.data == null) {
return Center(
child: CircularProgressIndicator(),
);
}
return Container(
child: Stack(
children: [
Row(
children: [
Flexible(
child: Column(
children: [
Text(
'اسم الدواء: ' + doc[index]['medicationName'],
textAlign: TextAlign.start,
),
],
),
)
],
),
],
),
);
},
));
第一个流可以发出空快照。
在访问文档之前,您应该检查快照是否有数据:
if(!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
}
// if it has data, do your thing:
final doc = snapshot.data.docs;
return ListView( ..... )
使您的代码正常工作的另一种解决方案是使用 null safety 并将 snapshot.data 替换为 snapshot?.data