微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 redux-observable 中使用 React ErrorBoundary?

如何解决如何在 redux-observable 中使用 React ErrorBoundary?

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

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

我想用 catchErrorrxjs 函数捕捉错误

是否有可能让它工作,我可以使用 ErrorBoundary 来获取错误

也许与 react-error-boundary 包和 useErrorHandker 挂钩?我无法正常工作。

解决方法

这就是我所做的。

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

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 中,我执行以下操作:

const errorHandler = useErrorHandler();
setConfig({...getConfig(),errorHandler } );

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

catchError((err: unknown) => {
  const errorHandler = getConfig().errorHandler as (e: unknown) => unknown;
  errorHandler(err);
}),...

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

我昨晚才弄明白,所以可能需要调整一些类型,但这是基本思路。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。