From ef8624a259cf0cfeec9248125f39926d43738935 Mon Sep 17 00:00:00 2001 From: kongmoumou <35442047+kongmoumou@users.noreply.github.com> Date: Mon, 6 Mar 2023 19:59:29 +0800 Subject: [PATCH] fix: use memoized fn in use-interval (#2029) (#2070) * fix: use memoized fn in use-interval * fix: fn naming --------- Co-authored-by: lijianan <574980606@qq.com> --- packages/hooks/src/useInterval/index.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/hooks/src/useInterval/index.ts b/packages/hooks/src/useInterval/index.ts index 3c96b9f183..62239452b8 100644 --- a/packages/hooks/src/useInterval/index.ts +++ b/packages/hooks/src/useInterval/index.ts @@ -1,5 +1,5 @@ import { useCallback, useEffect, useRef } from 'react'; -import useLatest from '../useLatest'; +import useMemoizedFn from '../useMemoizedFn'; import { isNumber } from '../utils'; function useInterval( @@ -11,7 +11,7 @@ function useInterval( ) { const { immediate } = options; - const fnRef = useLatest(fn); + const timerCallback = useMemoizedFn(fn); const timerRef = useRef(null); useEffect(() => { @@ -19,17 +19,15 @@ function useInterval( return; } if (immediate) { - fnRef.current(); + timerCallback(); } - timerRef.current = setInterval(() => { - fnRef.current(); - }, delay); + timerRef.current = setInterval(timerCallback, delay); return () => { if (timerRef.current) { clearInterval(timerRef.current); } }; - }, [delay]); + }, [delay, timerCallback]); const clear = useCallback(() => { if (timerRef.current) {