reactjs BugSnag ErrorBoundary未在react中显示自定义错误页面

jhiyze9q  于 2023-02-04  发布在  React
关注(0)|答案(1)|浏览(101)

我正在使用React进行SPA。
目前,在生产中,用户只能在应用程序崩溃时看到一个空白页面。
所以,我试图设置一个自定义错误页面.
因为我在我的react应用程序中使用BugSnag进行错误监控;我使用了BugSnag提供的ErrorBoundary。
下面是初始化和放置ErrorBoundary的代码。

const bugsnagClient = bugsnag('8XXXXXXXXXXXXXXXbac')
bugsnagClient.use(bugsnagReact, React)
const ErrorBoundary = bugsnagClient.getPlugin('react')

ReactDOM.render(
<ErrorBoundary FallbackComponent={FallBack}>
    <IntlProvider locale={language} messages={messages[language]}>
        <Provider store={store}>
            <App />
        </Provider>
    </IntlProvider>
</ErrorBoundary>,
document.getElementById('root')
);

以下是自定义错误代码:

import React, { Component } from 'react';
import fallbackVector from '../assets/500-error-vector.svg';
import { Link } from "react-router-dom";

export default class FallBack extends Component{

    render(){

        return(
            <div className="container-fluid mt-3 mb-3 mt-md-5 mb-md-5">
                <div className="row">
                    <div className="col-12 col--404 text-center">
                        <img src={fallbackVector} alt="page not found" />
                        <p className="mt-5 font-weight-bold">Something went wrong!</p>
                        <Link to="/">
                            <button className="btn btn-primary mt-3">GO TO HOME</button>
                        </Link>
                    </div>
                </div>
            </div>
        )
    }
}

不知何故,它仍然显示空白页。
错误可能发生在React组件树之外,因此ErrorBoundry无法捕获。
关于如何解决这个问题有什么想法吗?

06odsfpq

06odsfpq1#

如果错误发生在React组件树之外,那么ErrorBoundary将不会捕获它,并且不会呈现Fallback组件。
如果您有一个复制案例,它在React组件树中触发了一个错误,而这是不工作的,那么请联系我们的Bugsnag支持,我们会查看。

相关问题