我正在使用redux-observable编写史诗,并尝试使用多个过滤器(oftype)编写史诗。以下是我的示例代码
export const landingEpic = action$ => {
console.log('inside landing epic');
return action$.ofType('APPLY_SHOPPING_LISTS').map(() => (
{
type: 'APPLYING_SHOPPING_LISTS',
})
);
return action$.ofType('APPLIED_SHOPPING_LIST'){
//here I want to return something else
}
}
但是我不能在一个史诗中有两个回归方法吗?
答案 0 :(得分:3)
你想要将它们与Observable.merge()
结合起来然后返回 - 但我也强烈建议将它们分成两个单独的史诗。它会让测试变得更容易,但那当然是你的电话。
export const landingEpic = action$ => {
return Observable.merge(
action$.ofType('APPLY_SHOPPING_LISTS')
.map(() => ({
type: 'APPLYING_SHOPPING_LISTS',
}),
action$.ofType('APPLIED_SHOPPING_LIST')
.map(() => ({
type: 'SOMETHING_ELSE',
}),
);
}
答案 1 :(得分:0)
听起来你想使用combineEpics:
import { combineEpics } from "redux-observable";
const landingEpic1 = // put epic1 definition here
const landingEpic2 = // put epic2 definition here
export default combineEpics(
landingEpic1,
landingEpic2,
// ...
);