gpt4 book ai didi

redux - 返回 EMPTY 崩溃我的 redux 可观察链

转载 作者:行者123 更新时间:2023-12-04 12:40:53 28 4
gpt4 key购买 nike

我正在使用 redux,redux-observable。

我有以下

import { EMPTY, Observable } from "rxjs";

const setCurrentDatastoreIdEpic = (action$, state$): Observable<any> => action$.pipe(
ofType(DatastoreActions.setCurrentDatastoreId),
map((action: {payload: {datastoreId: string}}) => {
if(action.payload.datastoreId) {
return ItemsActions.getItemsListRequest({
datastoreId: action.payload.datastoreId,
page: 1,
});
} else {
return EMPTY;
}
})
);

但每次我进去的时候我都有

Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.



但是他们说如果没有调度任何 Action ,就使用 EMPTY。

我也试过 Observable.empty()但它说 Observable 中不存在空(并且这种方式从我所看到的中被弃用)

最佳答案

问题是您正在使用运算符 map在里面你要回来 EMPTY . EMPTY是一个不发出 next 的 Observable通知并只发出一个 complete通知。但是map不关心你从它的投影函数返回什么,所以它需要 EMPTY并进一步传递它,其中 redux-observable提示是因为 EMPTY不是一个 Action 。

所以,而不是 map您可以使用 concatMap (或 mergeMap 也可以)并包裹 ItemsActions.getItemsListRequestof() .返回 EMPTY进入 concatMap是完全正确的。

concatMap((action: {payload: {datastoreId: string}}) => {
if(action.payload.datastoreId) {
return of(ItemsActions.getItemsListRequest({
datastoreId: action.payload.datastoreId,
page: 1,
}));
} else {
return EMPTY;
}
})

关于redux - 返回 EMPTY 崩溃我的 redux 可观察链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59171112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com