|
|
@@ -8,6 +8,7 @@ import dayjs from "dayjs";
|
|
|
import _ from "lodash";
|
|
|
import API from "../../../api/alarm";
|
|
|
import classNames from "classnames";
|
|
|
+import { useMemoizedFn } from "ahooks";
|
|
|
|
|
|
const { RangePicker } = DatePicker;
|
|
|
|
|
|
@@ -238,6 +239,22 @@ const TopoDetail = (props) => {
|
|
|
}
|
|
|
}, [id]);
|
|
|
|
|
|
+ // 使用useMemoizedFn避免闭包陷阱
|
|
|
+ const handleRefreshAlarm = useMemoizedFn(() => {
|
|
|
+ fetchAlarmDetail(id, range[0], range[1]);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 监听刷新事件
|
|
|
+ useEffect(() => {
|
|
|
+ // 添加事件监听器
|
|
|
+ window.addEventListener("refreshAlarm", handleRefreshAlarm);
|
|
|
+
|
|
|
+ // 清理函数:移除事件监听器
|
|
|
+ return () => {
|
|
|
+ window.removeEventListener("refreshAlarm", handleRefreshAlarm);
|
|
|
+ };
|
|
|
+ }, []);
|
|
|
+
|
|
|
// 获取告警详情
|
|
|
const fetchAlarmDetail = async (alarmId, startTime, endTime) => {
|
|
|
try {
|