我有以下选择器:
export const selectMissionState: MemoizedSelector<object, State> = createFeatureSelector<State>('missions');
export const selectAll: (state: object) => Array<IMission> = featureAdapter.getSelectors(selectMissionState).selectAll;
就我而言,我执行以下=>
@Effect()
applyMissionReroute$ = this.actions$.pipe(
ofType<featureActions.ApplyMissionReroute>(featureActions.ActionTypes.ApplyMissionReroute),
withLatestFrom(MissionsStoreSelectors.selectAll()),
switchMap(([action, state]) => {})
);
但是我面临一个问题,尽管我的selectAll应该返回一个Array(这是编译器在结束时说的内容,但我的[action,state]只是一个IMission。
我的状态是什么,只是一个IMission,而不是数组?
答案 0 :(得分:1)
您应该使用withLatestFrom
调用this.store
来接收整个商店状态,或者只用this.store.pipe(select(...selector...))
来调用状态的一部分。
通过以下更改,您将在selectAll
参数内收到选择器的结果。
@Effect()
applyMissionReroute$ = this.actions$.pipe(
ofType<featureActions.ApplyMissionReroute
(featureActions.ActionTypes.ApplyMissionReroute),
withLatestFrom(this.store.pipe(select(MissionsStoreSelectors.selectAll))),
switchMap(([action, selectAll]) => {
..
})
);
希望它会对您有所帮助。