A React hook for debouncing setState and other callbacks
Package Exports
@react-hook/debounce
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@react-hook/debounce) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
useDebounce()
npm i @react-hook/debounce
A React hook for debouncing setState and other callbacks
Quick Start
import{useDebounce, useDebounceCallback}from'@react-hook/debounce'constComponent=props=>{// at a basic level, used just like useStateconst[value, setValue]=useDebounce('initialValue')}constuseMyCallback=(initialState, wait, leading)=>{// this is the same code useDebounce() uses to debounce setStateconst[state, setState]=useState(initialState)return[state,useDebounceCallback(setState, wait, leading)]}
exportconst useDebounceCallback =<CallbackArgs extendsany[]>(callback:(...args: CallbackArgs)=>void,
wait =100,
leading =false):((...args: CallbackArgs)=>void)
Options
Property
Type
Default
Description
callback
(...args: CallbackArgs) => void
This is the callback you want to debounce. You need to wrap closures/unstable callbacks in useCallback() so that they are stable, otherwise throttling will break between renders.
wait
number
100
Defines the amount of time you want setState to wait after the last received action before executing
leading
boolean
false
Calls setState on the leading edge (right away). When false, setState will not be called until the next frame is due