在哪里运行组件特定的saga



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

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

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

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

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

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

在根组件上运行传奇。官方redux传奇示例:

store.runSaga(rootSaga)
render(
<Root
//...
/>,
//...
)

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

最新更新