Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将常规错误处理添加到React应用程序中?_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 如何将常规错误处理添加到React应用程序中?

Reactjs 如何将常规错误处理添加到React应用程序中?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我目前正在构建一个React应用程序,它可以进行大量的服务器通信。如果发生服务器错误,我希望以常规方式向用户显示错误,例如,覆盖错误消息 使用容器组件 在我的减缩器中,我返回如下内容: { 类型:“列表发布错误”, 加载:false, 错误:{ msg:“发生错误” } } 显然,我的容器组件支持redux。在render()函数中,我可以检查当前状态是否具有属性error,如果是,我将呈现错误消息。奇怪的是,在每个容器组件中,我都必须检查当前状态,并且可能在每个容器组件中都有重复的代码 更一般

我目前正在构建一个React应用程序,它可以进行大量的服务器通信。如果发生服务器错误,我希望以常规方式向用户显示错误,例如,覆盖错误消息

使用容器组件 在我的减缩器中,我返回如下内容:

{
类型:“列表发布错误”,
加载:false,
错误:{
msg:“发生错误”
}
}

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

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


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

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


出现错误时,您可以
分派
此操作。比如,你可以在
Promise
.catch()
分派它,我正在为我的应用程序尝试类似的东西。因此,在catch或>=400响应时触发dispatch,以将字符串(您的api响应)设置为状态,并将此值连接到组件

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


希望对你有帮助

这似乎更像是一个JavaScript问题,而不是特定于react的问题,为什么不返回一个创建新错误的函数,然后分配您希望显示的错误属性呢?听起来是个不错的解决方案!我创建了一个新的动作,该动作将被调度,并为此创建了一个新的减速器。我的目标是让另一个容器组件知道错误状态。所以我创建了一个容器组件。但是,ContainerComponent不会被调用,因为它从未被初始化。您在哪里初始化您的
toast
组件?完全正确。使组件侦听错误操作并使用该组件显示相关错误!这是我的密码:看起来很干净!我认为,问题是React或Redux不知道该组件实际上正在使用。您是否需要做任何额外的事情来初始化您的组件?看见