1

我正在使用 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
    }
}

但是我不能在一部史诗中有两种返回方法?

4

2 回答 2

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',
      }),
  );
}
于 2017-04-24T23:42:25.880 回答
0

听起来您想使用combineEpics

import { combineEpics } from "redux-observable";

const landingEpic1 = // put epic1 definition here

const landingEpic2 = // put epic2 definition here

export default combineEpics(
    landingEpic1, 
    landingEpic2,
    // ...
);
于 2017-04-24T22:43:21.667 回答