Class: ErrorBoundary
native/Error.ErrorBoundary
This error boundary displays the caught error message
Enable Sentry error logging (recommended)
<ErrorBoundary sentry><App /></ErrorBoundary>
Use custom Sentry configuration
<ErrorBoundary sentry={{ dsn: 'https://...ingest.sentry.io/...' }}>
Show a custom error screen
const FallbackScreen = ({ error }) => <Text>{error.message}</Text>
<ErrorBoundary screen={FallbackScreen}>
Handle clicks on the default error screen
<ErrorBoundary onPress={() => alert('Restart the app')}>
More info: https://reactjs.org/docs/error-boundaries.html
Hierarchy
Component<Props_>↳
ErrorBoundary
Constructors
constructor
• new ErrorBoundary(props)
Parameters
| Name | Type |
|---|---|
props | Props_ | Readonly<Props_> |
Inherited from
Component<Props_>.constructor
• new ErrorBoundary(props, context)
deprecated
see https://reactjs.org/docs/legacy-context.html
Parameters
| Name | Type |
|---|---|
props | Props_ |
context | any |
Inherited from
Component<Props_>.constructor
Properties
context
• context: any
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>
see https://reactjs.org/docs/context.html
Inherited from
Component.context
props
• Readonly props: Readonly<Props_> & Readonly<{ children?: ReactNode }>
Inherited from
Component.props
refs
• refs: Object
deprecated
https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs
Index signature
▪ [key: string]: ReactInstance
Inherited from
Component.refs
state
• state: State
Overrides
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.
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}</>;
}
}
see https://reactjs.org/docs/context.html#classcontexttype
Inherited from
Component.contextType
Methods
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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use componentDidMount or the constructor instead
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Returns
void
Inherited from
Component.UNSAFE_componentWillMount
UNSAFE_componentWillReceiveProps
▸ Optional UNSAFE_componentWillReceiveProps(nextProps, nextContext): 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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use static getDerivedStateFromProps instead
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Parameters
| Name | Type |
|---|---|
nextProps | Readonly<Props_> |
nextContext | any |
Returns
void
Inherited from
Component.UNSAFE_componentWillReceiveProps
UNSAFE_componentWillUpdate
▸ Optional UNSAFE_componentWillUpdate(nextProps, nextState, nextContext): 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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use getSnapshotBeforeUpdate instead
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Parameters
| Name | Type |
|---|---|
nextProps | Readonly<Props_> |
nextState | Readonly<{}> |
nextContext | any |
Returns
void
Inherited from
Component.UNSAFE_componentWillUpdate
componentDidCatch
▸ componentDidCatch(error): void
Parameters
| Name | Type |
|---|---|
error | Error |
Returns
void
Overrides
Component.componentDidCatch
componentDidMount
▸ componentDidMount(): void
Returns
void
Overrides
Component.componentDidMount
componentDidUpdate
▸ Optional componentDidUpdate(prevProps, prevState, snapshot?): 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
| Name | Type |
|---|---|
prevProps | Readonly<Props_> |
prevState | Readonly<{}> |
snapshot? | any |
Returns
void
Inherited from
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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use componentDidMount or the constructor instead; will stop working in React 17
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Returns
void
Inherited from
Component.componentWillMount
componentWillReceiveProps
▸ Optional componentWillReceiveProps(nextProps, nextContext): 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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use static getDerivedStateFromProps instead; will stop working in React 17
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Parameters
| Name | Type |
|---|---|
nextProps | Readonly<Props_> |
nextContext | any |
Returns
void
Inherited from
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
Component.componentWillUnmount
componentWillUpdate
▸ Optional componentWillUpdate(nextProps, nextState, nextContext): 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 getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked.
deprecated 16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17
see https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path
Parameters
| Name | Type |
|---|---|
nextProps | Readonly<Props_> |
nextState | Readonly<{}> |
nextContext | any |
Returns
void
Inherited from
Component.componentWillUpdate
forceUpdate
▸ forceUpdate(callback?): void
Parameters
| Name | Type |
|---|---|
callback? | () => void |
Returns
void
Inherited from
Component.forceUpdate
getSnapshotBeforeUpdate
▸ Optional getSnapshotBeforeUpdate(prevProps, prevState): any
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.
Parameters
| Name | Type |
|---|---|
prevProps | Readonly<Props_> |
prevState | Readonly<{}> |
Returns
any
Inherited from
Component.getSnapshotBeforeUpdate
render
▸ render(): ReactNode
Returns
ReactNode
Overrides
Component.render
setState
▸ setState<K>(state, callback?): void
Type parameters
| Name | Type |
|---|---|
K | extends never |
Parameters
| Name | Type |
|---|---|
state | null | {} | (prevState: Readonly<{}>, props: Readonly<Props_>) => null | {} | Pick<{}, K> | Pick<{}, K> |
callback? | () => void |
Returns
void
Inherited from
Component.setState
shouldComponentUpdate
▸ Optional shouldComponentUpdate(nextProps, nextState, nextContext): 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
| Name | Type |
|---|---|
nextProps | Readonly<Props_> |
nextState | Readonly<{}> |
nextContext | any |
Returns
boolean
Inherited from
Component.shouldComponentUpdate
getDerivedStateFromError
▸ Static getDerivedStateFromError(): Object
Returns
Object
| Name | Type |
|---|---|
hasError | boolean |