我迷失于管理流生成器...请帮助!
我有一个很棒的类,它从firestore中获取数据并将其显示为列表。流包含一个变量(rag
),该变量可以基于用户交互而更改,我希望当此类变量更改时,流进行更新。我无法使其正常运行,我认为我的问题是我无法刷新信息流。如何刷新我的信息流?在iOS中,有一条简单的reloadData行可以实现...
请参见下面的代码
class RestaurantList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: _firestore
.collection('restaurants')
.where('lat', isGreaterThan: appData.currentLatitude - rag)
.where('lat', isLessThan: appData.currentLatitude + rag)
.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError) return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Center(
child: new Text(
'Loading...',
),
);
default:
final restDB = snapshot.data.documents;
for (var rest in restDB) {
final restID = rest.documentID;
final name = rest.data['name'];
final lati = rest.data['lat'];
final longi = rest.data['lon'];
final distance = (appData.currentLatitude - lati) *
(appData.currentLatitude - lati) +
(appData.currentLongitude - longi) *
(appData.currentLongitude - longi);
if (longi < appData.currentLongitude + rag &&
longi > appData.currentLongitude - rag) {
final restaurant = Restaurant(
restID: restID,
name: name,
distance: distance,
lati: lati,
longi: longi,
);
restaurants.add(restaurant);
}
}
return ListView(
shrinkWrap: true,
physics: ClampingScrollPhysics(),
children: restaurants,
);
}
},
);
}
}