Skip to main content
Browser monitoring ist ein Beta-Feature von AppSignal Labs. Das Paket @appsignal/browser wird unter dem beta-Tag auf npm veröffentlicht, und seine Konfiguration und API können sich zwischen Beta-Releases noch ändern. Teilen Sie Ihr Feedback in unserer Discord-Community.
Render-Fehler in React erreichen den globalen Error-Handler des Browsers nicht zuverlässig. Umschließen Sie den betroffenen Teil Ihrer Anwendung mit einer Error Boundary, um sie zu melden. AppSignal für Browser enthält eine unter @appsignal/browser/react; es ist kein zusätzliches Paket zu installieren. Optional: React 16.8 oder neuer, wenn Sie die Error Boundary verwenden möchten, die das Paket mitbringt.

Render-Fehler abfangen

Übergeben Sie captureError als Prop, damit die Boundary die von ihr abgefangenen Fehler melden kann. Die Boundary meldet den abgefangenen Fehler. Ihr onError-Callback erhält außerdem den React-Component-Stack zur eigenen Verwendung. In dieser Beta ist dieser Component-Stack nicht in den regulären Fehlerberichten enthalten.

Sich von einem Fehler erholen

Übergeben Sie eine Funktion als fallback, um dem Nutzer einen neuen Versuch zu ermöglichen. Sie erhält den Fehler und eine reset-Funktion, die den Fehler löscht und die Children erneut rendert:

Eine einzelne Komponente umwickeln

withErrorBoundary umwickelt eine Komponente, was praktisch ist für Widgets, die fehlschlagen sollen, ohne die Seite mitzunehmen:

Props

Platzieren Sie Boundaries um Routen oder Widgets mit einem sinnvollen Fallback. So kann ein fehlgeschlagenes Widget den Rest der Seite weiterhin funktionsfähig lassen. Eine Boundary an der Wurzel fängt alles ab, ersetzt aber Ihre gesamte Anwendung durch den Fallback.

Die aktuelle Route melden

Melden Sie die aktuelle Route beim ersten Laden und nach jeder Navigation. Übergeben Sie ein Template wie /orders/:id, nicht die aufgelöste URL /orders/42. Weder die Routen-IDs von React Router noch usePathname() von Next.js App Router liefern dieses Template automatisch. Das Beispiel für React Router verwendet einen Data Router wie createBrowserRouter; rendern Sie RouteReporter darin.
Rendern Sie RouteReporter beim Next.js App Router aus der passenden Route. Übergeben Sie zum Beispiel routeTemplate="/orders/[id]" aus app/orders/[id]/page.jsx. usePathname() gibt die aufgelöste URL zurück, zum Beispiel /orders/42, verwenden Sie sie also nicht als Template.
Importieren Sie Ihr AppSignal-Setup vor Ihrem Router. Das SDK und einige Router patchen beide history.pushState, und das SDK verträgt sich mit einem bestehenden Patch, statt ihn zu ersetzen. Den Router zuerst zu laden kann dazu führen, dass clientseitige Navigation nicht gemeldet wird.

Fehler aus Event-Handlern und Effects melden

Eine Error Boundary fängt Fehler ab, die beim Rendern ausgelöst werden. Sie fängt keine Fehler ab, die in einem Event-Handler, einem setTimeout oder einem abgelehnten Promise innerhalb eines Effects ausgelöst werden. Nicht abgefangene erreichen window und werden automatisch gemeldet. Die übrigen melden Sie selbst: