我在另一个类中构建了一个StreamBuilder,并在build()中将其称为。现在,我想在另一个实际上需要此Stream的类中使用该类。有人可以帮我吗?
谢谢
class ItemList extends StatefulWidget {
final String documentId;
final String userId;
ItemList({
Key key,
this.documentId,
this.userId
}) : super(key: key);
@override
_ItemListState createState() => new _ItemListState();
}
在此类中,StreamBuilder被初始化。
class _ItemListState extends State<ItemList>{
@override
void initState(){
super.initState();
}
StreamBuilder buildItemStream(BuildContext context) {
final databaseReference = Firestore.instance;
return new StreamBuilder(
stream: databaseReference.collection("events").
document(widget.documentId).
collection("itemList").
snapshots(),
builder: (context, snapshot) {
//if(snapshot.error) return const Center(child: Text("Your ItemList is empty"));
return Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
padding: EdgeInsets.all(10.0),
//itemExtent: 300.0,
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) =>
buildItemList(context, snapshot.data.documents[index]),
),
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: buildItemStream(context),
);
}
}