首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将React ErrorBoundary与redux-observable一起使用?

如何将React ErrorBoundary与redux-observable一起使用?
EN

Stack Overflow用户
提问于 2021-04-12 15:43:29
回答 1查看 89关注 0票数 0

React错误边界不适用于异步代码。

但是我正在使用redux-observablerxjs从我的api中获取数据。

我想用rxjscatchError函数来捕获错误。

有没有可能让它工作,我可以使用一个ErrorBoundary来处理获取错误?

也许可以使用react-error-boundary包和useErrorHandker钩子?我不能让它工作。

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 22:58:41

这是我所做的。

我已经有了一个在启动时加载的配置模块。

代码语言:javascript
复制
let config: Config = {
  // other config values here
  errorHandler: (error: unknown) unknown => null;
}

export const getConfig = (): Config => config;
export const setConfig = (cfg: Config) => {
  config = cfg;
}

其中Config是我的配置接口。

在我的顶级tsx中,我这样做:

代码语言:javascript
复制
const errorHandler = useErrorHandler();
setConfig({...getConfig(), errorHandler } );

现在,我可以从我的RxJS catchError()访问错误处理程序。

代码语言:javascript
复制
catchError((err: unknown) => {
  const errorHandler = getConfig().errorHandler as (e: unknown) => unknown;
  errorHandler(err);
}), ...

这是因为模块使配置变量本质上是一个单例,可通过导出的set/get函数进行访问和设置。

我昨晚才弄明白这一点,所以一些类型可能还需要调整,但这是基本的想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67054375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档