在哪里运行组件特定的Sagas?

时间:2018-11-06 14:21:07

标签: reactjs redux redux-saga

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

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

但这意味着使用sagas的组件始终将具有应用程序逻辑,即使它们可能是可重用的ui组件。

运行特定于组件的Sagas的最佳实践是什么?他们应该只在商店里跑步吗?它们是否应该在连接器中运行?

1 个答案:

答案 0 :(得分:1)

进行由您的应用逻辑sagas组成的根级传奇:

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

在根组件上运行传奇。 Official redux-saga example

store.runSaga(rootSaga)

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

那么其余的组件树就没有传奇逻辑。