Skip to Content
DocsCloud UI HooksuseDebouncedState

useDebouncedState

Debounce state updates for uncontrolled components.

Import

import { useDebouncedState } from '@tidbcloud/uikit'

Usage

useDebouncedState hook debounces value changes. It is designed to work with uncontrolled components.

import { useDebouncedState } from '@tidbcloud/uikit' import { TextInput, Text } from '@tidbcloud/uikit' function Demo() { const [value, setValue] = useDebouncedState('', 500) return ( <> <TextInput defaultValue={value} onChange={(e) => setValue(e.currentTarget.value)} placeholder="Type something..." /> <Text mt="md">Debounced value: {value}</Text> </> ) }

Differences from useDebouncedValue

  • You do not have direct access to the non-debounced value
  • It is used for uncontrolled inputs (defaultValue prop instead of value)
  • It does not work with custom state providers or props, uses useState internally

Leading Update

Immediately update value with first call using { leading: true }:

import { useDebouncedState } from '@tidbcloud/uikit' const [value, setValue] = useDebouncedState('', 500, { leading: true })

Definition

interface UseDebouncedStateOptions { leading?: boolean } type UseDebouncedStateReturnValue<T> = [T, (newValue: SetStateAction<T>) => void] function useDebouncedState<T = any>( defaultValue: T, wait: number, options?: UseDebouncedStateOptions ): UseDebouncedStateReturnValue<T>
Last updated on