From 5d16ba8056c5163c89df3f60406a75dc1e5f4d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E7=88=B1=E5=90=83=E7=99=BD=E8=90=9D?= =?UTF-8?q?=E5=8D=9C?= Date: Thu, 16 Jan 2025 15:19:57 +0800 Subject: [PATCH] fix: trigger only when changed (#299) --- src/hooks/useHeights.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/hooks/useHeights.tsx b/src/hooks/useHeights.tsx index b4c6955..bea8a05 100644 --- a/src/hooks/useHeights.tsx +++ b/src/hooks/useHeights.tsx @@ -33,6 +33,8 @@ export default function useHeights( cancelRaf(); const doCollect = () => { + let changed = false; + instanceRef.current.forEach((element, key) => { if (element && element.offsetParent) { const htmlElement = findDOMNode(element); @@ -45,12 +47,15 @@ export default function useHeights( if (heightsRef.current.get(key) !== totalHeight) { heightsRef.current.set(key, totalHeight); + changed = true; } } }); // Always trigger update mark to tell parent that should re-calculate heights when resized - setUpdatedMark((c) => c + 1); + if (changed) { + setUpdatedMark((c) => c + 1); + } }; if (sync) {