mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
75476a9136
Webpack 4, react-error-overlay, react-loadable (major)
26 lines
552 B
JavaScript
26 lines
552 B
JavaScript
// @flow
|
|
import * as React from 'react'
|
|
|
|
type ComponentDidCatchInfo = {
|
|
componentStack: string
|
|
}
|
|
|
|
type Props = {|
|
|
onError: (error: Error, info: ComponentDidCatchInfo) => void,
|
|
children: React.ComponentType<*>
|
|
|}
|
|
|
|
class ErrorBoundary extends React.Component<Props> {
|
|
componentDidCatch (error: Error, info: ComponentDidCatchInfo) {
|
|
const {onError} = this.props
|
|
// onError is required
|
|
onError(error, info)
|
|
}
|
|
render () {
|
|
const {children} = this.props
|
|
return React.Children.only(children)
|
|
}
|
|
}
|
|
|
|
export default ErrorBoundary
|