| 12345678910111213141516171819202122232425262728293031323334 |
- import React, { Component } from 'react';
- export class ErrorBoundary extends Component<{}, any> {
- constructor(props: {}) {
- super(props);
- this.state = { error: null, errorInfo: null };
- }
- componentDidCatch(error: any, errorInfo: any) {
- // Catch errors in any components below and re-render with error message
- this.setState({
- error,
- errorInfo,
- });
- }
- render() {
- if (this.state.errorInfo) {
- // Error path
- return (
- <div className="explore-container">
- <h3>An unexpected error happened.</h3>
- <details style={{ whiteSpace: 'pre-wrap' }}>
- {this.state.error && this.state.error.toString()}
- <br />
- {this.state.errorInfo.componentStack}
- </details>
- </div>
- );
- }
- // Normally, just render children
- return this.props.children;
- }
- }
|