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;