我目前正在使用 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 .