【发布时间】:2020-09-11 07:18:11
【问题描述】:
我正在努力实现 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,
})
)
);
欢迎任何帮助,谢谢。
【问题讨论】:
-
你能创建一个 StackBlitz 或类似的东西吗?