Javascript 以模块化方式配置redux saga

Javascript 以模块化方式配置redux saga,javascript,reactjs,redux,redux-saga,Javascript,Reactjs,Redux,Redux Saga,我正在为我的项目使用CreateReact应用程序。现在我需要redux saga来实现异步操作,我面临着一个关于以模块化方式配置saga的问题。通过模块化的方式,我的意思是,将有一个主要的sagas文件,它将导出所有组件的sagas。例如,有5个组件,组件1、组件2、组件3、组件4和组件5。每个组件都有自己的操作、还原、常量和传奇。如何配置这种方式 我可以采用以下方法,但处理此类问题的最佳方法是什么 这是我的源代码 store.js import { createStore, applyMid

我正在为我的项目使用CreateReact应用程序。现在我需要redux saga来实现异步操作,我面临着一个关于以模块化方式配置saga的问题。通过模块化的方式,我的意思是,将有一个主要的sagas文件,它将导出所有组件的sagas。例如,有5个组件,组件1、组件2、组件3、组件4和组件5。每个组件都有自己的操作、还原、常量和传奇。如何配置这种方式

我可以采用以下方法,但处理此类问题的最佳方法是什么

这是我的源代码

store.js

import { createStore, applyMiddleware } from "redux";
import createSagaMiddleware from "redux-saga";
import rootReducer from "../reducers";
import rootSaga from "../app/sagas";

const configureStore = () => {
  const sagaMiddleware = createSagaMiddleware();
  return {
    ...createStore(rootReducer, applyMiddleware(sagaMiddleware)),
    runsaga: sagaMiddleware.run(rootSaga)
  };
};
import component1Saga from './component1/sagas';
import component2Saga from './component2/sagas';

export default function* appSaga() {
  yield [component1Saga, component2Saga];
}
sagas.js

import { createStore, applyMiddleware } from "redux";
import createSagaMiddleware from "redux-saga";
import rootReducer from "../reducers";
import rootSaga from "../app/sagas";

const configureStore = () => {
  const sagaMiddleware = createSagaMiddleware();
  return {
    ...createStore(rootReducer, applyMiddleware(sagaMiddleware)),
    runsaga: sagaMiddleware.run(rootSaga)
  };
};
import component1Saga from './component1/sagas';
import component2Saga from './component2/sagas';

export default function* appSaga() {
  yield [component1Saga, component2Saga];
}

要回答您的问题,让我们看看它是如何实现的

configureStore
函数中,他们调用sagas()。您可以像这样使用您的传奇扩展(如果有)

现在,您可以像这样导出您的个人传奇

你可以像这样在你的路线中注入传奇故事。但是,在此之前,您必须创建一些助手函数,该函数可以为您执行该操作


希望这有帮助。

我昨天刚刚使用了该样板,我是该样板的粉丝,但问题是我在另一个项目中使用了react router v4,这就是为什么我在异步saga注入方面遇到问题的原因。