ncu*_*ery 5 react-native redux-observable
我使用redux-observable处理React Native应用程序.我有10+的史诗,所有的结局.catch(err => console.error(err))
,以显示本机做出反应"红盒子"(见https://facebook.github.io/react-native/docs/debugging.html#errors)在里面的错误的情况下,史诗.
如何定义一个全局错误处理程序,由所有史诗使用(它们稍后由combineEpics
函数组合)?
jay*_*lps 11
redux-observable倾向于RxJS的惯用范例,几乎可以用于你所做的一切.将Epics组合在一起时,您将创建一个具有正常function (action$, store)
签名的新Epic .因此,这个新的Epic代表了各个Epics的所有输出,包括错误.
您可以通过定义自己的内容rootEpic
并编写combineEpics()
调用结果来利用这一事实.由于史诗是工厂,你需要记住传递(action$, store)
!
这是一种方式:
export const rootEpic = (action$, store) =>
combineEpics(epic1, epic2, epic3)(action$, store) // <-- call epic w/ args
.do({ error: err => console.error(err) });
Run Code Online (Sandbox Code Playgroud)
你可能不应该使用.catch()
这个操作符,因为.catch()
是返回一些其他可观察改为使用,当有错误.如果您只想记录错误(而不是尝试恢复),.do()
那么它是理想的操作符 - 它的目的是允许您执行对流本身没有影响的外部副作用(如日志记录).
撰写史诗是非常强大的,不仅仅是在这种情况下,而是我们计划很快描述的许多其他内容.
与.catch()
运算符相关,您可能还对RFC感兴趣以获得更好的默认错误处理.
归档时间: |
|
查看次数: |
1594 次 |
最近记录: |