From 82e2ee22ddac9e90f6855e54081ec19749991785 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, 15 Jan 2026 15:03:41 +0800 Subject: [PATCH] feat: support element --- src/useResizeObserver.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/useResizeObserver.ts b/src/useResizeObserver.ts index 2fe4810..cf5b40d 100644 --- a/src/useResizeObserver.ts +++ b/src/useResizeObserver.ts @@ -5,7 +5,7 @@ import { useEvent } from '@rc-component/util'; export default function useResizeObserver( enabled: boolean, - getTarget: () => HTMLElement, + getTarget: HTMLElement | (() => HTMLElement), onDelayResize?: OnResize, onSyncResize?: OnResize, ) { @@ -63,8 +63,9 @@ export default function useResizeObserver( }); // Dynamic observe + const isFuncTarget = typeof getTarget === 'function'; React.useEffect(() => { - const target = getTarget(); + const target = isFuncTarget ? getTarget() : getTarget; if (target && enabled) { observe(target, onInternalResize); @@ -75,5 +76,9 @@ export default function useResizeObserver( unobserve(target, onInternalResize); } }; - }, [enabled]); + }, [ + enabled, + // When is function, no need to watch it + isFuncTarget ? 0 : getTarget, + ]); }