Redux 如何在一部史诗中处理多种动作类型?做同样的事有什么坏处吗?

Redux 如何在一部史诗中处理多种动作类型?做同样的事有什么坏处吗?,redux,observable,rxjs5,redux-observable,Redux,Observable,Rxjs5,Redux Observable,对于redux observables、rxjs和observables来说是非常新的。想知道我如何处理另一个动作,在同一部史诗中说“动作二” const Epic1 = (action$,store) => { return action$.ofType('ActionOne') .mergeMap((action) => { return ajax({'method': 'GET', 'url': 'someUrl') .map(response

对于redux observables、rxjs和observables来说是非常新的。想知道我如何处理另一个动作,在同一部史诗中说“动作二”

const Epic1 = (action$,store) => {
return action$.ofType('ActionOne')
 .mergeMap((action) => {
      return ajax({'method': 'GET', 'url': 'someUrl')
         .map(response => resultActoin(action.userId, response.response));


       }
  );
 }
差不多

const Epic1 = (action$){
   if('ActionOne') make a API call.
   if('ActionTwo') make some other API call.
   else do nothing.

}

是同一个API调用吗?如果是这样,
of type()
接受多个类型。您只需执行类型为('ActionOne','ActionTwo')的
action$。


如果你想请求另一个API/URL,我建议你再做一个epic。您可以将所有史诗与
combineEpics
进行“合并”,请参见:

^^^^此。每个任务有一个epic几乎总是更好的。了解combineEpics,尝试在一个epic中处理多个动作。你能解释一下为什么epic/per action是一个好的设计吗?除了代码的可维护性?它只是关于可维护性。原因是相同的,为什么您有多个文件和模块。它有助于扩展应用程序并使其合理化,而不会带来任何负面影响。此外,它还使重构更加容易,并且可以创建动作流。我很高兴!:)