运行 特定于组件的 sagas 在哪里?

Where to run component specific sagas?

在我的项目中,我们目前 运行在每个组件的存储组件特定的 sagas 中使用应用程序范围的 sagas,如下所示:

public componentDidMount() {
    sagaMiddleware.run(componentSpecificSagas);
}

但这意味着使用 sagas 的组件将始终包含应用程序逻辑,即使它们本来可以是可重用的 ui 组件。

运行宁组件特定传奇的最佳实践是什么?他们应该 运行 在店里吗?他们应该在连接器中 运行 吗?

制作一个由您的应用程序逻辑传奇组成的根级传奇:

function* rootSaga() {
    yield spawn(saga1)
    yield spawn(saga2)
    // ...
}

运行 根组件的 saga。 Official redux-saga example:

store.runSaga(rootSaga)

render(
    <Root
        //...
    />,
    //...
)

那么组件树的其余部分就没有saga逻辑了。