Skip to main content

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

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

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

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

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

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

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

React Docs

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

Legacy React Docs

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