useControlledComponent

一个 React Hook,帮助你管理受控组件,这些组件接收满足以下类型的 valueonChange 属性。

export interface ControlledComponentProps<T> = { /** * 受控组件的值 */ value: T /** * 当受控组件的值发生变化时调用的回调 */ onChange: (eventOrValue: T | { target: { value: T } }) => void }

演示

尝试清除输入并输入一些内容。

源码
React
Vue
Angular

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

const input = useControlledComponent(initialValue, options)

初始值 InitialValue

组件的初始值,可以是 stringnumberbooleanobjectarray 等。

选项 Options

export interface UseControlledComponentOptions<T = string, P extends object = object> extends UseSafeStateOptions { /** * 当受控组件的值发生变化时调用的回调 */ onChange?: (value: T, preValue?: T) => void /** * 当受控组件的值被重置时调用的回调 */ onReset?: (initialValue: T) => void /** * 受控组件的 props */ props?: P /** * 受控组件的备用值 */ fallbackValue?: T }

返回值

export interface UseControlledComponentReturns<T> { /** * 受控组件的值 */ value: T /** * 应传递给受控组件的 props */ props: ControlledComponentProps<T> /** * 将受控组件的值重置为初始值 */ reset(): void /** * 设置受控组件的值 */ setValue: (value: T) => void }