Files
NetMesh/components/inspection/InspectionErrorBoundary.tsx
zhaolei c64e00d835 feat: 新增设备巡检模块实现完整的巡检告警功能
新增设备巡检模块核心功能,包括:
- 巡检数据存储与调度系统
- 华为/H3C交换机及Linux服务器采集器
- 设备扩展配置与告警规则管理
- 主机详情页巡检配置入口
- 产品名称自定义设置功能
- 网络设备SSH exec通道兼容处理
2026-10-09 10:37:48 +08:00

39 lines
1.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import React from "react";
/**
* 简易 ErrorBoundary,用于包裹巡检相关组件,
* 防止组件内部错误导致整个 AsidePanel 空白。
*/
export class InspectionErrorBoundary extends React.Component<
{ children: React.ReactNode; fallback?: React.ReactNode },
{ hasError: boolean; error: Error | null }
> {
constructor(props: { children: React.ReactNode; fallback?: React.ReactNode }) {
super(props);
this.state = { hasError: false, error: null };
}
static getDerivedStateFromError(error: Error) {
return { hasError: true, error };
}
componentDidCatch(error: Error, info: React.ErrorInfo) {
console.error("[InspectionErrorBoundary] 组件渲染错误:", error, info);
}
render() {
if (this.state.hasError) {
if (this.props.fallback) return this.props.fallback;
return (
<div className="p-3 rounded-md border border-destructive/30 bg-destructive/5 text-sm">
<div className="font-medium text-destructive mb-1">巡检配置加载失败</div>
<div className="text-xs text-muted-foreground font-mono">
{this.state.error?.message || "未知错误"}
</div>
</div>
);
}
return this.props.children;
}
}