表单输入组件。
表单输入,一般配合 Form 使用。
1.23 版本新增了 API composition , 开启后可以在输入法结束后再触发 onChange(包括中文输入法、日语输入法等)| 参数 | 说明 | 类型 | 默认值 | 是否必填 | 支持版本 |
|---|---|---|---|---|---|
| value | 当前值(受控) | string | number | - | - | |
| defaultValue | 默认值(非受控) | string | number | - | - | |
| onChange | 发生改变的时候触发的回调 | ( value: string | number, e: | React.ChangeEvent<HTMLInputElement> | React.CompositionEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>, reason?: string ) => void |
- | - | |
| onKeyDown | 键盘按下的时候触发的回调 | ( e: React.KeyboardEvent<HTMLInputElement>, opts: OnKeyDownOpts ) => void |
- | - | |
| disabled | 禁用状态 | boolean | false | - | |
| maxLength | 最大长度 | number | - | - | |
| hasLimitHint | 是否展现最大长度样式 | boolean | false | - | |
| showLimitHint | 是否展现最大长度样式 | boolean | false | - | |
| cutString | 当设置了 maxLength 时,是否截断超出的字符串 | boolean | true | - | |
| readOnly | 只读 | boolean | false | - | |
| trim | onChange 返回会自动去除头尾空字符 | boolean | false | - | |
| placeholder | 输入提示 | string | - | - | |
| onFocus | 获取焦点时候触发的回调 | (e: React.FocusEvent<HTMLInputElement>) => void | - | - | |
| onBlur | 失去焦点时候触发的回调 | (e: React.FocusEvent<HTMLInputElement>) => void | - | - | |
| getValueLength | 自定义字符串计算长度方式 | (value: string) => number | void | - | - | |
| className | 自定义 class | string | - | - | |
| style | 自定义内联样式 | React.CSSProperties | - | - | |
| htmlType | 原生 type | string | - | - | |
| name | name | string | - | - | |
| state | 状态 | 'error' | 'loading' | 'success' | 'warning' | - | - | |
| label | label | React.ReactNode | - | - | |
| hasClear | 是否出现 clear 按钮 | boolean | - | - | |
| hasBorder | 是否有边框 | boolean | true | - | |
| size | 尺寸 | 'small' | 'medium' | 'large' | 'medium' | - | |
| onPressEnter | 按下回车的回调 | (e: React.KeyboardEvent<HTMLInputElement>) => void | - | - | |
| hint | 水印 (Icon 的 type 类型,和清除按钮占用同一个地方) | string | React.ReactNode | - | - | |
| innerBefore | 文字前附加内容 | React.ReactNode | - | - | |
| innerAfter | 文字后附加内容 | React.ReactNode | - | - | |
| addonBefore | 输入框前附加内容 | React.ReactNode | - | - | |
| addonAfter | 输入框后附加内容 | React.ReactNode | - | - | |
| addonTextBefore | 输入框前附加文字 | React.ReactNode | - | - | |
| addonTextAfter | 输入框后附加文字 | React.ReactNode | - | - | |
| autoComplete | 自动补全 (原生 input 支持) | string | 'off' | - | |
| autoFocus | 自动聚焦 (原生 input 支持) | boolean | - | - | |
| isPreview | 是否为预览态 | boolean | false | - | |
| renderPreview | 自定义预览态内容 | (value: string | number | undefined, props: InputProps) => React.ReactNode | - | - | |
| composition | 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange | boolean | false | 1.23 | |
| hoverShowClear | hover 展示 clear (配合 hasClear=true 使用) | boolean | false | 1.24 | |
| extra | 额外内容 | React.ReactNode | - | - | |
| htmlSize | 原生 input 的 size 属性 | string | - | - | |
| inputRender | 自定义 input 样式 | (input: React.ReactElement) => React.ReactNode | - | - | |
| inputStyle | 自定义 input 样式 | React.CSSProperties | - | - | |
| inputClassName | 自定义 input 类名 | string | - | - | |
| innerBeforeClassName | 文字前附加内容类名 | string | - | - | |
| innerAfterClassName | 文字后附加内容类名 | string | - | - |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 | 支持版本 |
|---|---|---|---|---|---|
| value | 当前值(受控) | string | number | - | - | |
| defaultValue | 默认值(非受控) | string | number | - | - | |
| onChange | 发生改变的时候触发的回调 | (value: string, e: React.ChangeEvent<HTMLTextAreaElement>, type?: string) => void | - | - | |
| onKeyDown | 键盘按下的时候触发的回调 | ( e: React.KeyboardEvent<HTMLTextAreaElement>, opts: OnKeyDownOpts ) => void |
- | - | |
| disabled | 禁用状态 | boolean | false | - | |
| maxLength | 最大长度 | number | - | - | |
| hasLimitHint | 是否展现最大长度样式 | boolean | false | - | |
| showLimitHint | 是否展现最大长度样式 | boolean | false | - | |
| cutString | 当设置了 maxLength 时,是否截断超出的字符串 | boolean | true | - | |
| readOnly | 只读 | boolean | false | - | |
| trim | onChange 返回会自动去除头尾空字符 | boolean | false | - | |
| placeholder | 输入提示 | string | - | - | |
| onFocus | 获取焦点时候触发的回调 | (e: React.FocusEvent<HTMLTextAreaElement>) => void | - | - | |
| onBlur | 失去焦点时候触发的回调 | (e: React.FocusEvent<HTMLTextAreaElement>) => void | - | - | |
| getValueLength | 自定义字符串计算长度方式 | (value: string) => number | void | - | - | |
| className | 自定义 class | string | - | - | |
| style | 自定义内联样式 | React.CSSProperties | - | - | |
| htmlType | 原生 type | string | - | - | |
| name | name | string | - | - | |
| state | 状态 | 'error' | 'warning' | 'loading' | - | - | |
| hasBorder | 是否有边框 | boolean | true | - | |
| autoHeight | 根据内容自动改变高度 | boolean | { minRows?: number | string; maxRows?: number | string } | false | - | |
| rows | 多行文本框高度 | number | 4 | - | |
| isPreview | 是否为预览态 | boolean | false | - | |
| renderPreview | 自定义预览态内容 | (value: string | number | undefined, props: TextAreaProps) => React.ReactNode | - | - | |
| composition | 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange | boolean | false | 1.23 | |
| hasClear | 是否出现 clear 按钮 | boolean | - | - | |
| size | 尺寸 | 'small' | 'medium' | 'large' | 'medium' | - |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| addonBefore | 输入框前附加内容 | React.ReactNode | - | |
| addonBeforeClassName | 输入框前附加内容的类名 | string | - | |
| addonAfter | 输入框后附加内容 | React.ReactNode | - | |
| addonAfterClassName | 输入框后附加内容的类名 | string | - | |
| rtl | rtl | boolean | - | |
| disabled | 禁用状态 | boolean | - |
继承 Input 的属性
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| showToggle | 是否展示切换按钮 | boolean | true |
| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| beTrimed | 输入的空格被清理 | boolean | - | |
| overMaxLength | 已超出最大长度 | boolean | - |
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| getInputNode | 获取真正 input 节点 | Function | |
| focus | 获取焦点 签名: Function(start:Number, end: Number) 参数: start: {Number} 光标起始位置 end: {Number} 选择结束位置 |
Function |
| 按键 | 说明 |
|---|---|
| Enter | 触发 onKeyDown 事件 |
| Any | 触发 onChange 事件 |