如何将一般错误处理添加到我的 React 应用程序中?

How do I add general error handling into my React app?

我目前正在构建一个进行大量服务器通信的 React 应用程序。如果发生服务器错误,我想以一般方式向用户显示错误,例如带有错误消息的叠加层。

使用容器组件

在我的减速器中,我 return 是这样的:

{ type: "LIST_POSTS_ERROR", loading: false, error: { msg: "An error occurred" } }

显然,我的容器组件支持 redux。在 render() 函数中,我可以检查当前状态是否有 属性 error,如果有,我将呈现错误消息。奇怪的是,在每个容器组件中,我都必须检查当前状态,并且可能在每个容器组件中都有重复的代码。

更通用的方法

我要寻找的是一种更通用的方法。了解所有状态并在当前状态包含错误时自动显示错误消息的东西。把它想象成错误的拦截器。当然,这个组件不属于路由,所以我想知道这是否可能?

你是如何在你的 React 应用程序中进行错误处理的?我很想知道你的方法!

在我的应用程序中,我有一个名为 handleError 的操作,它将在我的应用程序中触发一个 toast 组件。

您可以在出错时dispatch执行此操作。比如,你可以在 Promise.catch()dispatch 它。

我正在为我的应用程序尝试类似的东西。因此,在 catch 或 >=400 响应上触发调度以设置状态中的字符串(您的 api 响应)并将此值连接到您的组件。

接下来,可能在 4-5 秒后触发调度以清除该值,这样您的消息就会消失。您可以在登录屏幕或 post API 调用中实现这一点。

希望对您有所帮助!!!