from Sentry Memo
Sentry User Feedback
<Sentry.ErrorBoundary fallback="An error has occurred" showDialog>Sentry.init({...
beforeSend(event, hint) {
// Check if it is an exception, and if so, show the report dialog
if (event.exception) {
Sentry.showReportDialog({ eventId: event.event_id });
}
return event;
},
});
- developだとエラー画面の下にフィードバック画面が出てる
- ID重複の警告が出てる
- フィードバック画面がそもそも2枚出てる
- showDialogとの重複かと思ったが、消しても変わらない
- エラーIDやタイムスタンプの異なるエラーが2回発生している
- 内容は同じ
- Sentry上でのイベント回数表示も2ずつ増えてる
- エラーバウンダリーのせいで2回出るのか?と思ったが、有無と関係ない
- →1回だけ表示するための処理を自前でやることにした
考察
error boundary は自身の子コンポーネントツリーで発生した JavaScript エラーをキャッチし、エラーを記録し、クラッシュしたコンポーネントツリーの代わりにフォールバック用の UI を表示する React コンポーネントです。
error boundary は以下のエラーをキャッチしません:
イベントハンドラ(詳細)
非同期コード(例:setTimeout や requestAnimationFrame のコールバック)