我目前正在使用Flutter Redux
架构进行一些实验,我注意到商店的状态在单向上发生变化。
但是,就我而言,我正在使用Cloud firestore
,我需要在云上监听数据库的更改,然后相应地更新UI上的数据。以下代码位于repository
,但我认为在store.dispatch(updateUIAction)
中调用repository layer
是不对的。有办法解决这个问题吗?
感谢。
class HikingPlacesRepository {
const HikingPlacesRepository();
List<HikingPlaceEntity> loadHikingPlaces() {
List<HikingPlaceEntity> places = [];
FireStore.instance.collection('hiking_places').snapshots.listen((snapshot) {
print("snapshot ${snapshot.documents[0]['placename']}");
if (snapshot != null) {
places = snapshot.documents.map((doc) => new HikingPlaceEntity(doc['placename'])).toList();
print("places in repo $places");
}
});
return places;
}
}
修改
阅读此example后,在middleware
图层中使用firestore时会有效,该图层会在商店更改时自动更新ViewModels。