useInputState
useInputState 是一个管理输入状态并支持可选值转换的 React Hook。返回的 onChange 处理函数同时适用于 <input> 和 <textarea> 元素。
接口
ts
function useInputState(
initialValue: string | (() => string) = '',
transformValue: (value: string) => string = (v: string) => v
): [
value: string,
onChange: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>,
];参数
- initialValuestring | (() => string)
输入的初始值。默认值为空字符串(
"")。
- transformValue(value: string) => string
用于转换输入值的函数。默认值为原样返回输入的恒等函数。
返回值
- [value: string, onChange: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>]
包含以下内容的元组:
- valuestring
当前的状态值。
- onChangeChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>
更新状态的函数。
- valuestring
示例
tsx
function Example() {
const [value, onChange] = useInputState('');
return (
<>
<input type="text" value={value} onChange={onChange} />
<textarea value={value} onChange={onChange} />
</>
);
}