withLatestFrom 实际上是错误的类型
withLatestFrom in effect wrong type
我有以下选择器:
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 应该 return 一个数组(这是编译器在我结束时说的,我的 [action, state] 只是一个 IMission。
我的状态只是一个 var IMission 而不是数组?
您应该使用 this.store
调用 withLatestFrom
以接收整个存储状态,或者使用 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]) => {
..
})
);
希望对您有所帮助。
我有以下选择器:
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 应该 return 一个数组(这是编译器在我结束时说的,我的 [action, state] 只是一个 IMission。
我的状态只是一个 var IMission 而不是数组?
您应该使用 this.store
调用 withLatestFrom
以接收整个存储状态,或者使用 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]) => {
..
})
);
希望对您有所帮助。