streamBuilder在排序或筛选后未更新其自身-Flutter



我正在使用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);
});
}

你能给我介绍一下吗?

尝试为StreamBuilder构建的每个小部件添加一个唯一的Key

完全重置流也不常见,而不是通过已在使用的流推送新数据。

最新更新