如何处理Redux Reducers中的错误和异常?

时间:2019-05-21 11:53:15

标签: redux

我们目前正在React / Redux应用程序中测试错误处理。 (我已经读过https://github.com/reduxjs/redux/issues/1960)。在React中,我们实现了ErrorBoundaries,并且运行良好:不再有未处理异常的空白页面。

否,我们没有尝试在Reducers中引发错误,并且看到它们以不变的Redux状态记录在控制台中。

  

减速器必须是纯净的!

我绝对可以支持。该功能应“简单”且无副作用,并经过充分测试。问题是:Reducer开发人员可能做出错误的假设(例如,关于Redux状态下的wich属性的定义可能是不确定的)。该示例导致

[Error] Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'someVariableWithCanBeNullOrUndefined.someFunction')

没有人可以争论:至少没有白页。但是,由于所有动作均已分派并执行,但未正确减少,因此App的状态现在有点尴尬。这些错误很容易被忽略。 有没有办法处理这些编程运行时错误?甚至可以在React的ErrorBoundary中显示它们?

1 个答案:

答案 0 :(得分:0)

据我所知,减速器<ControlTemplate x:Key="buttoncheckBox" TargetType="{x:Type Button}"> <Grid Background="Transparent"> ... 都无法处理异常。

尽管解决方案是设置全局错误处理程序。可以这样看:

connect(mapStateToProps, mapDispatchToProps)(View)