From 5ea59c3d5f92d85f2b580a7dcf5f9705564f3d7f Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Mon, 12 Aug 2019 20:59:49 +0800 Subject: [PATCH] fix: "ResizeObserver loop limit exceeded" --- src/components/SizeObserver.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/SizeObserver.tsx b/src/components/SizeObserver.tsx index ca3548e..7e63657 100644 --- a/src/components/SizeObserver.tsx +++ b/src/components/SizeObserver.tsx @@ -27,13 +27,17 @@ export default function SizeObserver({ const entry = entries[0] if (!entry) return const rect = entry.contentRect - setSize({ - width: rect.width, - height: rect.height, - }) + // requestAnimationFrame fixes "ResizeObserver loop limit exceeded" error + requestAnimationFrame(() => + setSize({ + width: rect.width, + height: rect.height, + }), + ) }) if (ref.current) observer.observe(ref.current) + return () => observer.disconnect() }, []) const props: any = { ...rest, ref } // :)