我正在使用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无法捕获。
关于如何解决这个问题有什么想法吗?
1条答案
按热度按时间06odsfpq1#
如果错误发生在React组件树之外,那么ErrorBoundary将不会捕获它,并且不会呈现Fallback组件。
如果您有一个复制案例,它在React组件树中触发了一个错误,而这是不工作的,那么请联系我们的Bugsnag支持,我们会查看。