From cab921fdaa4fac0eb4c351aad68c109db07ec63f Mon Sep 17 00:00:00 2001 From: Benjamin Makus Date: Sat, 2 Feb 2019 13:40:10 +0100 Subject: [PATCH] useDebounce rerender optimization --- src/useDebounce.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/useDebounce.ts b/src/useDebounce.ts index 4b3cd9ba..219d6cac 100644 --- a/src/useDebounce.ts +++ b/src/useDebounce.ts @@ -1,13 +1,13 @@ -import { useState, useEffect } from 'react'; +import { useEffect } from 'react'; const useDebounce = (fn: () => any, ms: number = 0, args: Array = []) => { - const [timeout, setTimeoutVar] = useState(null); - useEffect(() => { - // if args change then clear timeout - clearTimeout(timeout); - const t = setTimeout(fn.bind(null, args), ms); - setTimeoutVar(t); + let handle = setTimeout(fn.bind(null, args), ms); + + return () => { + // if args change then clear timeout + clearTimeout(handle); + } }, args); };