У меня есть следующий эффект
@Effect()
createMission$ = this.actions$.pipe(
ofType<featureActions.CreateMissionRequest>(featureActions.ActionTypes.CreateMissionRequest),
withLatestFrom(this.store$),
map(([action, state]) => {
return this.dataService.createMission(state.missions.entities[action.payload.routeId])).pipe(
map(response => new featureActions.CreateMissionSuccess({response, mission: state.missions.entities[action.payload.routeId]})),
catchError((error: HttpErrorResponse) => {
return of(new featureActions.CreateMissionFailed({error}));
}),
);
}),
);
Вместо того, чтобы манипулировать магазином, в моем коде есть селектор, подобный этому =>
export const featureAdapter: EntityAdapter<IMissionRoute> = createEntityAdapter<IMissionRoute>({
selectId: model => model.routeId,
});
export const selectAllEntities: (state: object) => Dictionary<IMissionRoute> = featureAdapter.getSelectors(selectMissionState).selectEntities;
export const getById = () => createSelector(
selectAllEntities,
(entities, props) => entities[props.id]
);
Я хотел бы использовать его вthe withLatestFrom
withLatestFrom((action) => this.store$.pipe(select(MissionsStoreSelectors.getById(), {id : action.payload.routeId}))),
map(([action, mission]) => {
///
}
Проблема, с которой я сталкиваюсь, заключается в том, что, если я сделаю более позднюю реализацию, у меня не будет 2 наблюдаемых (один для действия один для миссии), а только один.
Я не понимаю, что изменить, чтобы он работал