Reducer error取消所有任务,杀死所有sagas

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

最近两次,由于未定义变量,我在减速器中遇到错误。

在两种情况下,这都导致应用程序变得无响应,因为该错误具有级联效果,并且我所有的传奇“ take”命令都被取消。例如

Tasks cancelled due to error:
takeEvery(actionName1, sl)
takeLatest(actionName2, Yi)

此外,在两种情况下,修复都很简单-向减速器添加防御性编码以防止这种情况。

但是,如果代码允许undefined滑过,则对应用程序的影响将是毁灭性的,我想知道是否还有其他方法?

  • 我应该用try / catch将开关包装在减速器中吗?
  • 是否有发生错误时停止所有取消任务的方法?

感谢您的任何输入

redux redux-saga
1个回答
0
投票

我有一个可行的答案,但是我还是很乐意评论,以确认这是否是最佳答案,因为我对Redux并不熟悉。

我从上面实现了我的第一个建议,它似乎很好,并且可以解决我的问题

try {
    switch (action.type) {
        case '...':
    ...
} catch (err) {
    // Do something with the error here
    return state;  // state is unchanged
}

这是正确的还是有更好的方法?

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