javascript / expert
Snippet
AggregateError-Behandlung und Benutzerdefinierte Stack-Aggregation in React Error Boundaries
Demonstriert die native AggregateError-Erkennung in React Error Boundaries. Verarbeitet gebündelte Promise-Fehler oder zusammengesetzte Ausfälle und extrahiert innere Fehler-Stacks für detaillierte Diagnoseberichte.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import React, { Component } from 'react';export class GroupedErrorBoundary extends Component {state = { aggregatedErrors: null };componentDidCatch(error, errorInfo) {if (error instanceof AggregateError) {const traceMap = error.errors.map(err => ({message: err.message,stack: err.stack?.split('\n').slice(0, 3).join('\n')}));this.setState({ aggregatedErrors: traceMap });} else {this.setState({ aggregatedErrors: [{ message: error.message, stack: errorInfo.componentStack }] });}}render() {if (this.state.aggregatedErrors) {return <div>Errors caught: {this.state.aggregatedErrors.length}</div>;}return this.props.children;}}
react
Erklärung
1
if (error instanceof AggregateError) {
Prüft, ob der abgefangene Fehler ein zusammengesetzter AggregateError mit mehreren inneren Fehlern ist.
2
const traceMap = error.errors.map(err => ({
Iteriert über das errors-Array-Attribut von AggregateError, um verschachtelte Ursachen zu entpacken.
3
stack: err.stack?.split('\n').slice(0, 3).join('\n')
Kürzt einzelne Stack-Traces, um den Log-Fußabdruck im Zustand zu normalisieren.