react-native – 如何为所有redux-observable史诗添加全局错误处
发布时间:2020-12-15 20:16:30 所属栏目:百科 来源:网络整理
导读:我使用redux-observable处理React Native应用程序.我有10个史诗,全部以.catch(err = console.error(err))结尾,以便在史诗中出现错误时显示React Native“Red box”(见 https://facebook.github.io/react-native/docs/debugging.html#errors). 我如何定义一个
我使用redux-observable处理React Native应用程序.我有10个史诗,全部以.catch(err => console.error(err))结尾,以便在史诗中出现错误时显示React Native“Red box”(见
https://facebook.github.io/react-native/docs/debugging.html#errors).
我如何定义一个全局错误处理程序,由所有史诗使用(稍后由combineEpics函数组合)? 解决方法
redux-observable倾向于RxJS的惯用范例几乎所有你要做的事情.当您将Epics组合在一起时,您将创建一个具有正常功能(action $,store)签名的新Epic.因此,这个新的Epic代表了各个Epics的所有输出,包括错误.
您可以通过定义自己的rootEpic并撰写 这是一种方式: export const rootEpic = (action$,store) => combineEpics(epic1,epic2,epic3)(action$,store) // <-- call epic w/ args .do({ error: err => console.error(err) }); 您可能不应该使用.catch()运算符,因为.catch()用于在发生错误时返回其他一些Observable.如果您只想记录错误(而不是尝试恢复),.do()是理想的操作符 – 它的目的是允许您执行对流本身没有任何影响的外部副作用(如日志记录) . 撰写史诗是非常强大的,不仅仅是在这种情况下,而是我们计划很快描述的许多其他内容. 与.catch()运算符相关,您可能还对the RFC for better default error handling感兴趣. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |