Class: PlayErrorBoundary
API / @xmachines/play-react / PlayErrorBoundary
Defined in: packages/play-react/src/PlayErrorBoundary.tsx:53
React class component error boundary for catching catalog component render errors.
Wraps catalog component renders so failures are caught and forwarded to standard
React error boundary protocol. Consumers can attach the onError prop to forward
errors to production observability tools (Sentry, Datadog, etc.).
React 19 safety (Phase 29): componentDidCatch calls onError for observability
but does NOT re-throw. getDerivedStateFromError already sets the fallback state —
re-throwing from componentDidCatch can unmount the entire React 19 root.
Per CONS-14: Class component pattern works with all React versions (18 and 19).
Example
<PlayErrorBoundary fallback={<div>Something went wrong</div>} onError={Sentry.captureException}> <CatalogComponent {...props} /></PlayErrorBoundary>Extends
Component<PlayErrorBoundaryProps,PlayErrorBoundaryState>
Constructors
Constructor
new PlayErrorBoundary(props): PlayErrorBoundary;Defined in: packages/play-react/src/PlayErrorBoundary.tsx:57
Parameters
| Parameter | Type |
|---|---|
props | PlayErrorBoundaryProps |
Returns
PlayErrorBoundary
Overrides
React.Component< PlayErrorBoundaryProps, PlayErrorBoundaryState>.constructorProperties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
context | public | unknown | If using React 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 | React.Component.context | - |
props | readonly | Readonly<P> | - | React.Component.props | - |
state | public | Readonly<S> | - | React.Component.state | - |
contextType? | static | 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 | React.Component.contextType | - |
propTypes? | static | any | Ignored by React. Deprecated Only kept in types for backwards compatibility. Will be removed in a future major release. | React.Component.propTypes | - |
Methods
componentDidCatch()
componentDidCatch(error, info): void;Defined in: packages/play-react/src/PlayErrorBoundary.tsx:66
Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.
Parameters
| Parameter | Type |
|---|---|
error | Error |
info | ErrorInfo |
Returns
void
Overrides
React.Component.componentDidCatch;componentDidMount()?
optional componentDidMount(): void;Defined in: @types/react
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, prevState, snapshot?): void;Defined in: @types/react
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
| Parameter | Type |
|---|---|
prevProps | Readonly<P> |
prevState | Readonly<S> |
snapshot? | any |
Returns
void
Inherited from
React.Component.componentDidUpdate;componentWillMount()?
optional componentWillMount(): void;Defined in: @types/react
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
Deprecated
16.3, use 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, nextContext): void;Defined in: @types/react
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.
Parameters
| Parameter | Type |
|---|---|
nextProps | Readonly<P> |
nextContext | any |
Returns
void
Deprecated
16.3, use static 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;Defined in: @types/react
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, nextState, nextContext): void;Defined in: @types/react
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.
Parameters
| Parameter | Type |
|---|---|
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;Defined in: @types/react
Parameters
| Parameter | Type |
|---|---|
callback? | () => void |
Returns
void
Inherited from
React.Component.forceUpdate;getSnapshotBeforeUpdate()?
optional getSnapshotBeforeUpdate(prevProps, prevState): any;Defined in: @types/react
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 this method prevents any of the deprecated lifecycle events from running.
Parameters
| Parameter | Type |
|---|---|
prevProps | Readonly<P> |
prevState | Readonly<S> |
Returns
any
Inherited from
React.Component.getSnapshotBeforeUpdate;render()
render(): ReactNode;Defined in: packages/play-react/src/PlayErrorBoundary.tsx:70
Returns
ReactNode
Overrides
React.Component.render;setState()
setState<K>(state, callback?): void;Defined in: @types/react
Type Parameters
| Type Parameter |
|---|
K extends keyof PlayErrorBoundaryState |
Parameters
| Parameter | Type |
|---|---|
state | | PlayErrorBoundaryState | ((prevState, props) => | PlayErrorBoundaryState | Pick<PlayErrorBoundaryState, K> | null) | Pick<PlayErrorBoundaryState, K> | null |
callback? | () => void |
Returns
void
Inherited from
React.Component.setState;shouldComponentUpdate()?
optional shouldComponentUpdate( nextProps, nextState, nextContext): boolean;Defined in: @types/react
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
| Parameter | Type |
|---|---|
nextProps | Readonly<P> |
nextState | Readonly<S> |
nextContext | any |
Returns
boolean
Inherited from
React.Component.shouldComponentUpdate;UNSAFE_componentWillMount()?
optional UNSAFE_componentWillMount(): void;Defined in: @types/react
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
Deprecated
16.3, use 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, nextContext): void;Defined in: @types/react
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.
Parameters
| Parameter | Type |
|---|---|
nextProps | Readonly<P> |
nextContext | any |
Returns
void
Deprecated
16.3, use static 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, nextState, nextContext): void;Defined in: @types/react
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.
Parameters
| Parameter | Type |
|---|---|
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;getDerivedStateFromError()
static getDerivedStateFromError(error): PlayErrorBoundaryState;Defined in: packages/play-react/src/PlayErrorBoundary.tsx:62
Parameters
| Parameter | Type |
|---|---|
error | Error |