用不同的道具两次分派动作

时间:2020-04-11 14:59:41

标签: ngrx

下午好,

我想知道我是否可以用不同的参数两次执行相同的动作。

这样做,实际上我收到了两次value2:

    this.store.dispatch(xRequest({ filter: value1 }))
    this.store.dispatch(xRequest({ filter: value2 }))

xRequest$ = createEffect(() => {
        return this.actions$.pipe(
            ofType(xRequest),
            concatMap(({ filter }) => {
                return this.http.getResult(filter).pipe(
                    map((result: any) => {
                        return xRequestSuccess({ result, filter })
                    })
                )
            })
        )
    })
export const xRequest = createAction('[x] x request', props<{ filter: IFilter }>())

const xReducer = createReducer(
initialState,
on(xRequest, (state, { filter }) => {
    return { ...state, filter }
})

1 个答案:

答案 0 :(得分:1)

是的,如果没有突变,它可以按预期工作。

代码示例看起来不错。 您是否可以分享IFilter的声明?然后,我可以在本地对其进行测试并为您提供更新。

在减速器中,我建议处理xRequestSuccess而不是xRequest。在这里处理xRequest的目的是什么?