To report errors from a React app, you'll need to set up and use an
ErrorBoundary
component
and initialize an AirbrakeClient
with your projectId
and projectKey
.
import AirbrakeClient from 'airbrake-js';
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
this.airbrake = new AirbrakeClient({
projectId: 1,
projectKey: 'FIXME'
});
}
componentDidCatch(error, info) {
// Display fallback UI
this.setState({ hasError: true });
// Send error to Airbrake
this.airbrake.notify({
error: error,
params: {info: info}
});
}
render() {
if (this.state.hasError) {
// You can render any custom fallback UI
return <h1>Something went wrong.</h1>;
}
return this.props.children;
}
}
Then you can use it as a regular component:
<ErrorBoundary>
<MyWidget />
</ErrorBoundary>
Read Error Handling in React 16 for more details.