我正在努力实现Ngrx效果(直接来自文档)。 我总是以无限循环结尾:
updateSomething$ = createEffect(() =>
this.actions$.pipe(
ofType(somActions.fetchUpdateSomething),
mergeMap(() =>
this.someService.fetchUpdateSomething().pipe(
map(({ someData }) =>
someOtherActions.theAction({
payload: someData,
})
),
catchError(() => EMPTY)
)
)
)
);
我为此触发的动作来自一个组件:
this.store.dispatch(somActions.fetchUpdateSomething());
目标操作(somActions.fetchUpdateSomething)如下所示:
export const fetchUpdateSomething = createAction(
SomeActionTypes.FETCH_UPDATE_SOMETHING
);
以及要由效果触发的所需动作:
export const theAction = createAction(
SomeOtherActionTypes.UPDATE_SOMETHING,
props<{ payload: someData }>()
);
我昨天为此奋斗了几个小时。动作`theAction陷入无限循环。 减速器:
export const myReducer = createReducer(
initialState,
on(
someOtherActions.theAction,
(state, { payload }) => ({
...state,
...payload,
})
)
);
任何帮助都将受到欢迎,谢谢。
答案 0 :(得分:0)
实际上,我发现了一个问题:正是在服务中,在执行API调用之前检索存储中的值时,导致了无限循环。