在 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();
}));
}
在沙漏变量从 observable 更改后,我尝试了一些不同的方法来调度这个LoadHourglassesHistoryAction ,但不调度。是否可以在 Observable 更改后调度一个动作?
使用的包:
redux_epics:^0.10.0 & rxdart:^0.18.0