问题标签 [react-error-boundary]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - React 错误边界不适用于 React
这是我的错误边界文件 -
另一个文件是 -
在我的 App.js 中
它导致应用程序在没有捕获错误的情况下中断。这是在浏览器屏幕上看到的错误
更详细的版本在这里 - https://codepen.io/meghana1991/pen/abojydj?editors=0010
当我在本地使用与上面列出的多个文件相同的代码时,它不起作用
reactjs - 当错误边界捕获路由错误时,React-router 停止工作
下面链接的 codepen 使用react-router
错误边界来捕获每个路由中的错误。
如果单击“商店”,则会按预期捕获错误,但其他链接将不再起作用。这里发生了什么?为什么react-router-dom
似乎停止工作?这样做的“正确”方法是什么?是<ErrorBoundary>
组件有问题,还是路由组件的包装方式有问题,还是?
https://codepen.io/mpontus/pen/NyKNoL
如果 codepen 链接发生问题:
reactjs - React.js 在 Sentry 中记录所有 GraphQL 查询
我有一个React应用程序,它周围有一个ErrorBoundary
向 Sentry 发送错误的应用程序,它工作正常。我也想将我所有的 GraphQL 查询错误记录到 Sentry 中,但我现在的问题是我的所有 GraphQL 查询,我有一个 catch 块,我在其中为失败的查询调度一个操作。当我删除 catch 块时,错误会记录到 Sentry 中,但我无法触发失败的查询操作。
我现在的解决方案是放入Sentry.captureException()
一个非常重复的 GraphQL 查询的每个 catch 块。
ErrorBoundary
即使查询有自己的 catch 块,有没有办法允许仍然捕获 GraphQL 错误?
reactjs - 错误边界不会从 apollo 客户端捕获错误
我试图在顶层捕获一些错误,以展示世界上最漂亮的错误页面。
出于某种原因,我看到我的节点断开连接,但错误边界从未触发。
我在一个空的 create-react-app 项目中运行它。
我希望看到<h1>Had error</h1>
;我得到 CRA 未处理的错误屏幕。
reactjs - 反应:错误边界没有捕获不变违规
我想处理错误,以防我在 prop 值中有一个对象,而不是有效的反应子。所以我添加了一个错误边界但仍然有一个错误。
Uncaught Invariant Violation:对象作为 React 子对象无效(发现:带有键 {} 的对象)
为什么会发生?它不是事件处理程序,也不是 SSR,也不是异步代码。
reactjs - ReactJS - ErrorBoundaries 没有按预期工作
背景:React 版本:16.13.1 浏览器:Chrome 版本 - 81.0.4044.122
尽管在下面的代码片段中使用了 ErrorBoundary,但它会在浏览器中引发错误。处理的错误显示几毫秒,然后实际错误显示在浏览器中。有人可以帮我解决这个问题。
下面是整个代码片段:
javascript - 发生错误边界时处理反应上下文
我有一个提供上下文的组件(=provider),一些子组件正在使用上下文。
我的提供者还包装了一个 ErrorBoundary React 组件,以防儿童崩溃。从那里,如果发生错误,ErrorBoundary React 组件将更新我上下文中的一些值。
但看起来价值没有更新,我不知道为什么。
我的代码如下所示:
错误边界组件:
和一个子组件(我的 Provider + ErrorBoundary)
if loop
尽管调试时componentDidCatch
正确触发了,但我从不进入内部。
reactjs - 在 componentDidCatch React JS 上的 ErrorBoundary 内获取子组件状态
我正在尝试ErrorBoundary
通过遵循文档来实现,并且到目前为止是成功的。
我使用了文档中提到的相同方法
我无法完成的是MyWidget
在. 我想将子组件状态连同错误一起发送到服务器,以便更容易调试。ErrorBoundary
componentDidCatch
ErrorBoundary
到目前为止我尝试过的是refs
使用
然后在我的子组件中,我创建了一个getState
简单地返回自己状态的函数,然后在里面ErrorBoundary
我使用提供的ref
像
它完成了这项工作并返回子组件的状态,但是当我尝试使用相同的代码来使用内部的 refs 获取状态时,这componentDidCatch
会this.props.childrenRef.decoratedRef.current
导致引用子组件本身。null
current
null
有没有更好的方法来实现这一点?难道我做错了什么?
reactjs - componentDidCatch 第二个参数的类型与从内部调用的函数不兼容
我的组件中有一个标准componentDidCatch
,其类型如下所示,并从内部调用外部 Logging 库:
然而,第 3 方日志库logErrorMessage
函数的类型如下:
TS 错误消息显示如下
让我info
的 componentDidCatch 参数遵守 logErrorMessage 的 ArbitraryObject 接口的最佳方法是什么?最好无需更改 Logger 库源。
reactjs - 如何在 ErrorBoundary 内重定向?
我在我的 React 应用程序中使用 ErrorBoundary 并希望在发生错误时重定向到主页 - 但我的重定向不起作用。相反,应用程序停留在同一页面上。
相比之下,添加一个按钮允许用户在点击它时切换页面。
但是我想在发生错误时自动将用户带到那里。
当然,必须有一种简单的方法来做到这一点,而我却错过了。
我也试过返回一条没有运气的路线: