How to Use Error Boundaries to Handle Errors
Error Boundaries are essential for building stable React applications by catching and managing unexpected errors.
1. Define an ErrorBoundary class component
class ErrorBoundary extends React.Component {
// initiate component
}
2. State Initialization in Constructor
The constructor initializes the component's state with hasError: false, indicating that, by default, no error has occurred.
constructor(props) {
super(props);
this.state = { hasError: false };
}
3. Static Method getDerivedStateFromError
This static method is called by React whenever a child component throws an error. It updates the component’s state to hasError: true, signaling that an error has been caught.
Setting hasError to true triggers a re-render, allowing us to show a fallback UI.
static getDerivedStateFromError() {
return { hasError: true };
}
4. Render the state
render() {
if (this.state.hasError) {
return <h1>Something went wrong.</h1>;
}
return this.props.children;
}
In the render method, a check is made on this.state.hasError.
If an error is detected (hasError is true), the component displays a fallback UI with the message “Something went wrong.”
If no error is detected, it renders the component’s children (i.e., the components wrapped by ErrorBoundary).
5. Usage
<ErrorBoundary>
<MyComponent />
</ErrorBoundary>
With this setup, if MyComponent or any of its children throw an error, the ErrorBoundary will catch it and display the fallback UI.
You Might Also Like
Using useMemo for Caching and Optimizing Performance
~~`useMemo`~~ is a React Hook that helps optimize performance by memoizing (caching) the result of a...
Labels: Names used to label loops and control flow
``` outerLoop: for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (j === 1) {...