我有一个函数,其中我将StreamBuilder
添加到List中,然后将这些StreamBuilder
加载到Column
中,这种方法确实很消耗内存,因为所有List
都是一次性加载的,是否有其他方法可以实现这一点?
我的showList
函数:
showList() {
List<Widget> theList= [];
for (CountryModel country in _allCountries) {
theList.add(StreamBuilder(
stream:FirebaseFirestore.instance.collection('user').doc(country.Id).snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
xModel user = UserModel.fromDoc(snapshot.data);
return CountryWidget(
country: country,
viewer: user.id as String,);
} else {
return SizedBox.shrink();
}
}));
}
return theList;
}
在我的Scaffold中,我有一个Column,我在其中使用spread操作符将列表加载到children[]中。
Column(
children: <Widget>[
...showList()
],
),
1条答案
按热度按时间nfs0ujit1#
请尝试以下代码: