parent
c153d4a28a
commit
0675572f8b
2 changed files with 39 additions and 3 deletions
@ -0,0 +1,37 @@ |
|||||||
|
Error boundaries are special React components that catch JavaScript errors during rendering, in lifecycle methods, and during the constructor of whole tree below them. They are used to handle errors gracefully by displaying a fallback UI and preventing the entire application from crashing due to unhandled errors. |
||||||
|
|
||||||
|
You can use [react-error-boundary](https://npm.im/react-error-boundary) package to create error boundaries in your application. It provides a `ErrorBoundary` component that you can wrap around any component that might throw an error. The `ErrorBoundary` component takes a `FallbackComponent` prop that is used to render a fallback UI when an error occurs. |
||||||
|
|
||||||
|
## Capturing Errors |
||||||
|
|
||||||
|
```js |
||||||
|
import { ErrorBoundary } from 'react-error-boundary'; |
||||||
|
import { FetchData } from './FetchData'; |
||||||
|
|
||||||
|
function ErrorFallback({ error, resetErrorBoundary }) { |
||||||
|
return ( |
||||||
|
<div role="alert"> |
||||||
|
<p>Something went wrong:</p> |
||||||
|
<pre>{error.message}</pre> |
||||||
|
<button onClick={resetErrorBoundary}>Try again</button> |
||||||
|
</div> |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
export function App() { |
||||||
|
return ( |
||||||
|
<ErrorBoundary FallbackComponent={ErrorFallback}> |
||||||
|
<FetchData /> |
||||||
|
</ErrorBoundary> |
||||||
|
); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
This `FetchData` component will throw an error when it is rendered, and the `ErrorBoundary` component will catch the error and display the `ErrorFallback` component. |
||||||
|
|
||||||
|
```js |
||||||
|
export function FetchData() { |
||||||
|
throw new Error('Error fetching data'); |
||||||
|
return <p>This will never render</p>; |
||||||
|
} |
||||||
|
``` |
Loading…
Reference in new issue