import React, { ErrorInfo, ReactNode } from 'react'; export interface ChartErrorBoundaryProps { /** 子元素 */ children: ReactNode; /** 错误时的回退UI */ fallback?: ReactNode; /** 错误回调函数 */ onError?: (error: Error, errorInfo: ErrorInfo) => void; } export interface ChartErrorBoundaryState { hasError: boolean; } /** * ChartErrorBoundary 组件 - 图表错误边界组件 * * 该组件用于捕获图表组件渲染过程中的JavaScript错误, * 防止错误传播到整个应用程序,并提供友好的错误提示界面。 * * @component * @description 图表错误边界组件,用于错误处理和恢复 * @param {ChartErrorBoundaryProps} props - 组件属性 * @param {ReactNode} props.children - 子元素 * @param {ReactNode} [props.fallback] - 错误时的回退UI * @param {function} [props.onError] - 错误回调函数 * @param {boolean} [props.showError=false] - 是否显示错误详情 * @param {string} [props.className] - 自定义CSS类名 * * @example * ```tsx * 图表加载失败} * onError={(error, errorInfo) => console.error('Chart error:', error)} * showError={process.env.NODE_ENV === 'development'} * > * * * ``` * * @returns {React.ReactElement} 渲染的错误边界组件 */ declare class ChartErrorBoundary extends React.Component { constructor(props: ChartErrorBoundaryProps); static getDerivedStateFromError(_error: Error): Partial; componentDidCatch(error: Error, errorInfo: ErrorInfo): void; render(): ReactNode; } export default ChartErrorBoundary;