有没有办法使用多个redux-sagas而不在rootSaga中创建一个巨大的数组?

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

目前,我的申请中有20多条路线。这些路由中的每一个都有多个API调用,所以我打算使用redux-saga来进行AJAX调用。

从阅读文档,看起来我将能够执行以下操作:

  1. 每条路线都有它自己的“根”传奇,自己产生多个传奇。
  2. 这个特定于路线的传奇将被导出到实际的主根传奇,然后传递给createSagaMiddleware.run()

所以它看起来像这样:

export function* screen1Saga() {
    yield [ ... ]; // different sub-sagas for screen1 route
}

然后在主saga文件中,执行以下操作:

import { screen1Saga } from './screen1/sagas';

export function* rootSaga() {
    yield [ screen1Saga(), ... ]; // array of route-specific sagas
}  

我相信这应该完美无缺。但是我担心当创造20多种特定航线的传奇时它会是怎样的。在根传奇中,它只是一大堆传奇。

是否有可能以其他方式做到这一点?优选地,路由特定传奇被封装在其相应的文件夹中,而不需要将其一直导出到应用程序结构的顶部?

只是好奇地看到其他人如何处理大量的传奇故事。

reactjs redux redux-saga
1个回答
1
投票

React-Boilerplate repo是扩展React应用程序的一些方法的一个很好的例子。他们使用一个名为asyncInjectors的实用程序文件,它实际上只是通过调用引擎盖下的sagaMiddleware.run(saga)来委派添加传单的工作。

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