useControlledComponent
A React Hook that helps you to manage controlled components that receive value
and onChange
props meeting the following type.
export interface ControlledComponentProps<T> = {
/**
* The value of the controlled component
*/
value: T
/**
* The callback that is called when the value of the controlled component changes
*/
onChange: (eventOrValue: T | { target: { value: T } }) => void
}
Demo
Try to clear the input and type something.
Usage
See API for more details.
Source
Click links below to view source on GitHub.
API
const input = useControlledComponent(initialValue, options)
InitialValue
Initial value of the component, can be a string
, number
, boolean
, object
, array
etc.
Options
export interface UseControlledComponentOptions<T = string, P extends object = object> extends UseSafeStateOptions {
/**
* The callback that is called when the value of the controlled component changes
*/
onChange?: (value: T, preValue?: T) => void
/**
* The callback that is called when the value of the controlled component is reset
*/
onReset?: (initialValue: T) => void
/**
* The props of the controlled component
*/
props?: P
/**
* The fallback value of the controlled component
*/
fallbackValue?: T
}
Returns
export interface UseControlledComponentReturns<T> {
/**
* The value of the controlled component
*/
value: T
/**
* The props that should be passed to the controlled component
*/
props: ControlledComponentProps<T>
/**
* Reset the value of the controlled component to the initial value
*/
reset(): void
/**
* Set the value of the controlled component
*/
setValue: (value: T) => void
}