是否有一种方法可以从管道中以可观察的Redux发送多个动作?

问题描述 投票:0回答:1

现在我要做的只是在myAPI.postUserData(action.payload)之前;我想调用PROFILE_FETCHING_DATA_LOADING来显示ActivityIndi​​cator,但我无法执行此操作。

const profileFetchingDataEpic = (action$) =>
  action$.pipe(
    ofType(PROFILE_FETCHING_DATA_ATTEMPT),
    flatMap((action) => {
      myAPI.postUserData(action.payload);
      return [action];
    }),
    map((action) => {
      console.log("EPIC profileFetchingDataEpic", action);
      return {
        type: PROFILE_FETCHING_DATA_SUCCESS,
        payload: action.payload,
      };
    })
  );

任何想法的人

reactjs react-native redux rxjs redux-observable
1个回答
0
投票

我不确定我是否正确理解您的100%。如果要由一个可观察的发射创建多个发射,则可以:

  1. 将您的多个值映射到数组
  2. 将它们全部合并为单个发射

const { Observable } = rxjs;
const { mapTo, mergeAll } = rxjs.operators;

const source$ = new Observable(sub => sub.next(void 0)).pipe(
  mapTo(['one', 'two']),
  mergeAll()
)

source$.subscribe(v => console.log('source$', v))
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.3/rxjs.umd.min.js"></script>

mapTo代表您的map((action) => ...。在这里,您需要创建要在特定操作传入后发出的所有操作。

© www.soinside.com 2019 - 2024. All rights reserved.