Granice błędów (Error Boundaries) w React to komponenty, które wychwytują błędy JavaScript w swoich komponentach potomnych, zapisują je i wyświetlają komunikat o błędzie zamiast rozbicia całej aplikacji. Granice błędów nie mogą wychwytywać błędów w samych sobie, asynchronicznych operacjach czy event handlerach.
Jak tworzyć granice błędów:
- Tworzenie klasy komponentu, która implementuje metody
componentDidCatch
igetDerivedStateFromError
:
class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(error) { return { hasError: true }; } componentDidCatch(error, errorInfo) { console.log(error, errorInfo); } render() { if (this.state.hasError) { return <h1>Coś poszło nie tak.</h1>; } return this.props.children; } }
- Owijanie komponentów, które mogą generować błędy, w granicę błędów:
<ErrorBoundary> <MyComponent /> </ErrorBoundary>
Granice błędów są niezbędne do zapewnienia, że błędy w komponentach potomnych nie spowodują awarii całej aplikacji.