【发布时间】:2022-01-25 19:33:43
【问题描述】:
我正在使用 StreamBuilder 和 ListView 在 UI 中显示来自 FireStoreDatabase 的数据。通常,当我对数据库进行任何更改(不刷新)时,它会自行更新。但是当我对流中的数据进行排序时,它不再更新。这是用于 StreamBuilder 的代码。
Stream<List<Attraction>> attractionsStream = Stream.value([]);
void initState() {
final database = Provider.of<Database>(context, listen: false);
setState(() {
//this.attractions = attractions.toList();
attractionsStream = database.attractionStream();
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder<List<Attraction>>(
stream: attractionsStream,
builder: (context, snapshot) {...}
);
}
_sortData() async {
final db = Provider.of<Database>(context, listen: false);
var attractions = await db.attractionStream().first;
attractions.sort((a, b) {...}
setState(() {
attractionsStream = Stream.value(attractions);
});
}
你能指导我吗?
【问题讨论】:
标签: flutter dart stream provider