Skip to main content

Class ErrorBoundary

About 3 min

Class ErrorBoundary

Declared in packages/sdk/app-framework/src/plugins/SurfacePlugin/ErrorBoundary.tsx:18open in new window

Surface error boundary.

For basic usage prefer providing a fallback component to Surface .

For more information on error boundaries, see: https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary

Constructors

constructor(props)open in new window

Returns: ErrorBoundary

Arguments:

props: Props

Properties

context

Type: 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.

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>

props

Type: Readonly<Props>

refs

Type: object

state

Type: Readonly<State>

contextType

Type: Context<any>

If set, this.context will be set at runtime to the current value of the given Context.

Usage:

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}</>;
 }
}

Methods

UNSAFE_componentWillMount()

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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments: none

UNSAFE_componentWillReceiveProps(nextProps, nextContext)

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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments:

nextProps: Readonly<Props>

nextContext: any

UNSAFE_componentWillUpdate(nextProps, nextState, nextContext)

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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments:

nextProps: Readonly<Props>

nextState: Readonly<State>

nextContext: any

componentDidCatch(error, errorInfo)

Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

Returns: void

Arguments:

error: Error

errorInfo: ErrorInfo

componentDidMount()

Called immediately after a component is mounted. Setting state here will trigger re-rendering.

Returns: void

Arguments: none

componentDidUpdate(prevProps)open in new window

Returns: void

Arguments:

prevProps: Props

componentWillMount()

Called immediately before mounting occurs, and before Component#render . Avoid introducing any side-effects or subscriptions in this method.

Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments: none

componentWillReceiveProps(nextProps, nextContext)

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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments:

nextProps: Readonly<Props>

nextContext: any

componentWillUnmount()

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

Arguments: none

componentWillUpdate(nextProps, nextState, nextContext)

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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.

Returns: void

Arguments:

nextProps: Readonly<Props>

nextState: Readonly<State>

nextContext: any

forceUpdate([callback])

Returns: void

Arguments:

callback: function

getSnapshotBeforeUpdate(prevProps, prevState)

Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

Returns: any

Arguments:

prevProps: Readonly<Props>

prevState: Readonly<State>

render()open in new window

Returns: undefined | "null" | string | number | boolean | ReactFragment | Element

Arguments: none

setState(state, [callback])

Returns: void

Arguments:

state: "null" | State | function | Pick<State, K>

callback: function

shouldComponentUpdate(nextProps, nextState, nextContext)

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.

Returns: boolean

Arguments:

nextProps: Readonly<Props>

nextState: Readonly<State>

nextContext: any

getDerivedStateFromError(error)open in new window

Returns: object

Arguments:

error: Error