0
我遇到了史诗般的问题,请帮我找出我出错的地方。谢谢!redux-observable:操作必须是普通对象。使用自定义中间件进行异步操作
下面的代码使我的错误:
const loginEpic = (action$) =>
action$
.ofType('LOGIN')
.switchMap(() => {
return Observable.fromPromise(loginService())
.map((result) => {
return Observable.of({
payload: result,
type: types.loginCompleted,
});
})
.catch((error) => {
return Observable.of({
payload: error,
type: types.loginFailed,
});
});
});
这里是我的configureStore文件:
const epicMiddleware = createEpicMiddleware(rootEpic);
// Ref: https://redux-observable.js.org/docs/recipes/HotModuleReplacement.html
if (module.hot) {
module.hot.accept('./epic',() => {
const nextEpic = require('./epic');
epicMiddleware.replaceEpic(nextEpic);
});
}
const configureStore =(): Store<any> => {
const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(epicMiddleware)));
if (module.hot) {
module.hot.accept('./reducer',() => {
const nextReducer = require('./reducer').default;
store.replaceReducer(nextReducer);
});
return store;
}
};
你冲出,正确的从'map'删除,但'catch'需要一个'Observable'回报。 – paulpdaniels
@ paulpdaniels是的,绝对正确,谢谢你的纠正! –
哦,我没认出来。谢谢;) – hxuanhung