// @flow import * as React from 'react'; type Props = { children: React.Node, component: React.ComponentType, }; type State = { error: ?Error, }; class AsyncError extends React.Component { static defaultProps = { component: () => null, }; static getDerivedStateFromError(error: Error) { return { error }; } state = { error: null }; render() { const { children, component: ErrorComponent } = this.props; const { error } = this.state; return error ? : children; } } export default AsyncError;