From 3cc2f50df792c602d4b36e9c434c571b8d4c5e99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Thu, 16 Jan 2025 15:00:49 +0800 Subject: [PATCH] fix: trigger only when changed --- 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 b4c6955d..bea8a057 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) {