在中间件中,我如何在流变量更改后分派一个操作?
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
发布于 2018-09-30 16:18:11
您必须返回可观察的/流,才能分派操作
Stream<dynamic> hourglassesStream(
Stream<dynamic> actions, EpicStore<AppState> store) {
return Observable(actions)
.ofType(TypeToken<ConnectToDataSourceAction>())
.switchMap((ConnectToDataSourceAction requestAction) {
return getHourglasses(action.id).map((hourglass) =>
LoadHourglassesHistoryAction(
hourglass.map(Hourglass.fromEntity).toList())
);
});
}https://stackoverflow.com/questions/52579399
复制相似问题