小编sla*_*din的帖子

启动rootSaga的惯用方法是什么?

redux-saga项目已经存在很长时间了,但是这个库仍然有很多令人困惑的事情.其中一个是:如何开始你的rootSaga.例如,在初学者教程中, rootSaga是通过一系列传奇来启动的.像这样

export default function* rootSaga() {
  yield [
    helloSaga(),
    watchIncrementAsync()
  ]
}
Run Code Online (Sandbox Code Playgroud)

然而,在使用传奇助手部分,rootSaga由两个分叉的传奇组成.像这样:

export default function* rootSaga() {
  yield fork(watchFetchUsers)
  yield fork(watchCreateUser)
}
Run Code Online (Sandbox Code Playgroud)

在redux-saga repo中的异步示例中使用了与启动rootSaga相同的方法.但是,如果你查看真实世界和购物卡的例子,你会看到rootSagas那里有一系列分叉的传奇.像这样:

export default function* root() {
  yield [
    fork(getAllProducts),
    fork(watchGetProducts),
    fork(watchCheckout)
  ]
}
Run Code Online (Sandbox Code Playgroud)

另外,如果您在redux-saga问题中阅读了一些讨论,您会看到有些人建议使用spawn而不是fork来为rootSaga保护应用程序完全崩溃,如果您的某个分叉传奇由于某些未处理的异常而被取消.

那么,哪种方式是启动rootSaga的最正确的方法?现有的有什么区别?

redux-saga

35
推荐指数
2
解决办法
6489
查看次数

标签 统计

redux-saga ×1