import React from "react"; export default class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { error: null, errorInfo: null }; } componentDidCatch(error, errorInfo) { // Catch errors in any components below and re-render with error message this.setState({ error, errorInfo, }); // You can also log error messages to an error reporting service here // eslint-disable-next-line no-console console.error(error, errorInfo); } render() { const { error, errorInfo } = this.state; if (errorInfo) { // Error path return (
Something went wrong.
{error && error.toString()} {errorInfo.componentStack}
); } // Normally, just render children const { children } = this.props; return children; } }