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.@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
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 alsfallback, 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.
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, einemsetTimeout oder einem abgelehnten Promise innerhalb eines Effects ausgelöst werden. Nicht abgefangene erreichen window und werden automatisch gemeldet. Die übrigen melden Sie selbst: