reactjs - 如何将 React ErrorBoundary 与 redux-observable 一起使用?
问题描述
React 错误边界不适用于异步代码。
但我正在使用redux-observable
并rxjs
从我的 api 中获取我的数据。
我想catchError
用rxjs
.
是否有可能让它工作,我可以使用 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 函数访问和设置的单例。
我昨晚才弄清楚这一点,所以一些打字可能还需要调整,但这是基本的想法。
推荐阅读
- plugins - Lightning Web 组件的本地开发服务器
- javascript -
- javascript - 我希望每个圆圈在 Javascript 中的不同时间按顺序移动
- python - 数据透视表未显示所有 df 值
- python - 如何在 Python 中读取大型图像文件夹和在 H5 中转换时防止内存填满
- c# - 如何做到这一点,以便我可以询问用户他们的生日并计算活着的天数?
- postgresql - 将字符串插入到 bytea 列中
- c# - 使用 ASP.NET MVC EF 报告
- sql - 使用并行数据仓库 (PDW) SQL 创建接受表参数的存储过程
- android - INSTALL_FAILED_NO_MATCHING_ABIS 尝试安装和运行 gluonfx HelloFX