Explorar el Código

在TopoDetail组件中添加handleRefreshAlarm函数,使用useMemoizedFn避免闭包陷阱,并在组件挂载时添加事件监听器以处理刷新事件。

valentichu hace 8 meses
padre
commit
8d77f7a2f4
Se han modificado 2 ficheros con 17 adiciones y 0 borrados
  1. 0 0
      lib/index.js
  2. 17 0
      src/pages/Alarm/components/topoDetail.jsx

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
lib/index.js


+ 17 - 0
src/pages/Alarm/components/topoDetail.jsx

@@ -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 {

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio