我正在使用 React 进行 SPA。
目前,在生产中,当应用程序崩溃时,用户只会看到一个空白页面。
所以,我正在尝试设置一个自定义错误页面。
因为我在我的反应应用程序中使用 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 不会捕获它。
关于如何解决这个问题的任何想法?