В промежуточном программном обеспечении Flutter Redux Epic, как я могу отправить действие после изменения потоковой переменной?
Простой пример EpicMiddleware:
final allEpics = combineEpics<AppState>([hourglassesStream]);
Firestore firestore = Firestore.instance;
Stream<dynamic> hourglassesStream(
Stream<dynamic> actions, EpicStore<AppState> store) {
return Observable(actions)
.ofType(TypeToken<ConnectToDataSourceAction>())
.switchMap((ConnectToDataSourceAction requestAction) {
getHourglasses(action.userId).listen((hourglass) {
LoadHourglassesHistoryAction(
hourglass.map(Hourglass.fromEntity).toList());
});
});
}
Observable<List<HourglassEntity>> getHourglasses(String userId) {
return Observable(firestore
.collection('users')
.document(userId)
.collection('hourglassLogs')
.snapshots()
.map((snapshot) {
return snapshot.documents.map((doc) {
return HourglassEntity(
doc['completedTime'],
doc['projectName'],
doc['userId'],
);
}).toList();
}));
}
Я пытался использовать несколько различных методов для отправки этого LoadHourglassesHistoryAction после того, как переменная песочных часов изменилась с наблюдаемой, но не отправляется.Возможна ли отправка действия после наблюдаемого изменения?
Используемые пакеты:
redux_epics: ^ 0.10.0 & rxdart: ^ 0.18.0