我目前正在使用 Flutter Redux
架构进行一些实验,我注意到商店的状态在单向方向上变化 . 但是,在我的情况下,我正在使用 Cloud firestore
,我需要在 Cloud 上监听数据库的更改,然后相应地更新UI上的数据 . 下面的代码将在 repository
中,但我认为在 repository layer
中调用 store.dispatch(updateUIAction)
是不对的 . 有办法解决这个问题吗?谢谢 .
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;
}
}
EDIT
在阅读example之后,它在 middleware
图层中使用firestore时有效,该图层会在商店更改时自动更新ViewModel .