ErrorBoundary
React error boundary component that catches JavaScript errors in child components. Logs errors and displays a fallback UI instead of crashing the app.
Example
import { ErrorBoundary } from '@elliemae/pui-app-sdk';
function App() {
return (
<ErrorBoundary>
<MyApp />
</ErrorBoundary>
);
}
// With custom error template
<ErrorBoundary errorTemplate={CustomErrorPage}>
<MyApp />
</ErrorBoundary>
Extends
Component<ErrorBoundaryProps>
Constructors
Constructor
new ErrorBoundary(props: ErrorBoundaryProps): ErrorBoundary;
Parameters
props
ErrorBoundaryProps
Returns
ErrorBoundary
Overrides
React.Component<ErrorBoundaryProps>.constructor
Methods
componentDidCatch()
componentDidCatch(error: Error, errorInfo: {
componentStack: string;
}): void;
Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.
Parameters
error
Error
errorInfo
componentStack
string
Returns
void
Overrides
React.Component.componentDidCatch
componentDidMount()?
optional componentDidMount(): void;
Called immediately after a component is mounted. Setting state here will trigger re-rendering.
Returns
void
Inherited from
React.Component.componentDidMount
componentDidUpdate()?
optional componentDidUpdate(
prevProps: Readonly<P>,
prevState: Readonly<S>,
snapshot?: any): void;
Called immediately after updating occurs. Not called for the initial render.
The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.
Parameters
prevProps
Readonly<P>
prevState
Readonly<S>
snapshot?
any
Returns
void
Inherited from
React.Component.componentDidUpdate
componentWillMount()?
optional componentWillMount(): void;
Called immediately before mounting occurs, and before Component.render. Avoid introducing any side-effects or subscriptions in this method.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Returns
void
Deprecated
16.3, use ComponentLifecycle.componentDidMount componentDidMount or the constructor instead; will stop working in React 17
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.componentWillMount
componentWillReceiveProps()?
optional componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void;
Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes.
Calling Component.setState generally does not trigger this method.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Parameters
nextProps
Readonly<P>
nextContext
any
Returns
void
Deprecated
16.3, use static StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps instead; will stop working in React 17
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.componentWillReceiveProps
componentWillUnmount()?
optional componentWillUnmount(): void;
Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as
cancelled network requests, or cleaning up any DOM elements created in componentDidMount.
Returns
void
Inherited from
React.Component.componentWillUnmount
componentWillUpdate()?
optional componentWillUpdate(
nextProps: Readonly<P>,
nextState: Readonly<S>,
nextContext: any): void;
Called immediately before rendering when new props or state is received. Not called for the initial render.
Note: You cannot call Component.setState here.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Parameters
nextProps
Readonly<P>
nextState
Readonly<S>
nextContext
any
Returns
void
Deprecated
16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.componentWillUpdate
forceUpdate()
forceUpdate(callback?: () => void): void;
Parameters
callback?
() => void
Returns
void
Inherited from
React.Component.forceUpdate
getSnapshotBeforeUpdate()?
optional getSnapshotBeforeUpdate(prevProps: Readonly<P>, prevState: Readonly<S>): any;
Runs before React applies the result of Component.render render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before Component.render render causes changes to it.
Note: the presence of this method prevents any of the deprecated lifecycle events from running.
Parameters
prevProps
Readonly<P>
prevState
Readonly<S>
Returns
any
Inherited from
React.Component.getSnapshotBeforeUpdate
render()
render():
| string
| number
| boolean
| Iterable<ReactNode, any, any>
| Element
| null
| undefined;
Returns
| string
| number
| boolean
| Iterable<ReactNode, any, any>
| Element
| null
| undefined
Overrides
React.Component.render
setState()
setState<K>(state:
| {
}
| ((prevState: Readonly<S>, props: Readonly<P>) =>
| {
}
| Pick<{
}, K>
| null)
| Pick<{
}, K>
| null, callback?: () => void): void;
Type Parameters
K
K extends never
Parameters
state
| {
}
| ((prevState: Readonly<S>, props: Readonly<P>) =>
| {
}
| Pick<{
}, K>
| null)
| Pick<{
}, K>
| null
callback?
() => void
Returns
void
Inherited from
React.Component.setState
shouldComponentUpdate()?
optional shouldComponentUpdate(
nextProps: Readonly<P>,
nextState: Readonly<S>,
nextContext: any): boolean;
Called to determine whether the change in props and state should trigger a re-render.
Component always returns true.
PureComponent implements a shallow comparison on props and state and returns true if any
props or states have changed.
If false is returned, Component.render, componentWillUpdate
and componentDidUpdate will not be called.
Parameters
nextProps
Readonly<P>
nextState
Readonly<S>
nextContext
any
Returns
boolean
Inherited from
React.Component.shouldComponentUpdate
UNSAFE_componentWillMount()?
optional UNSAFE_componentWillMount(): void;
Called immediately before mounting occurs, and before Component.render. Avoid introducing any side-effects or subscriptions in this method.
This method will not stop working in React 17.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Returns
void
Deprecated
16.3, use ComponentLifecycle.componentDidMount componentDidMount or the constructor instead
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.UNSAFE_componentWillMount
UNSAFE_componentWillReceiveProps()?
optional UNSAFE_componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void;
Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes.
Calling Component.setState generally does not trigger this method.
This method will not stop working in React 17.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Parameters
nextProps
Readonly<P>
nextContext
any
Returns
void
Deprecated
16.3, use static StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps instead
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.UNSAFE_componentWillReceiveProps
UNSAFE_componentWillUpdate()?
optional UNSAFE_componentWillUpdate(
nextProps: Readonly<P>,
nextState: Readonly<S>,
nextContext: any): void;
Called immediately before rendering when new props or state is received. Not called for the initial render.
Note: You cannot call Component.setState here.
This method will not stop working in React 17.
Note: the presence of NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate or StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps prevents this from being invoked.
Parameters
nextProps
Readonly<P>
nextState
Readonly<S>
nextContext
any
Returns
void
Deprecated
16.3, use getSnapshotBeforeUpdate instead
See
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update
- https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Inherited from
React.Component.UNSAFE_componentWillUpdate
Properties
context
context: unknown;
If using the new style context, re-declare this in your class to be the
React.ContextType of your static contextType.
Should be used with type annotation or static contextType.
Example
static contextType = MyContext
// For TS pre-3.7:
context!: React.ContextType<typeof MyContext>
// For TS 3.7 and above:
declare context: React.ContextType<typeof MyContext>
See
Inherited from
React.Component.context
props
readonly props: Readonly<P>;
Inherited from
React.Component.props
refs
refs: {
[key: string]: ReactInstance;
};
Index Signature
[key: string]: ReactInstance
Deprecated
See
Inherited from
React.Component.refs
state
state: Readonly<S>;
Inherited from
React.Component.state
contextType?
static optional contextType?: Context<any>;
If set, this.context will be set at runtime to the current value of the given Context.
Example
type MyContext = number
const Ctx = React.createContext<MyContext>(0)
class Foo extends React.Component {
static contextType = Ctx
context!: React.ContextType<typeof Ctx>
render () {
return <>My context's value: {this.context}</>;
}
}
See
https://react.dev/reference/react/Component#static-contexttype
Inherited from
React.Component.contextType