文本域
文本域组件是一个多行输入框,允许您写入大量文本。
安装
上述命令仅用于单独安装。如果 @heroui/react 已全局安装,您可以跳过此步骤。
导入
用法
禁用
只读
必填
如果您将 isRequired 属性传递给输入框,标签末尾将显示一个 danger 星号,并且该文本域将变为必填项。
清除按钮
如果您将 isClearable 属性传递给文本域,文本域末尾将显示一个清除按钮。当文本域有值时,该按钮将可见。
自动调整大小
文本域会根据内容自动增长,但您也可以使用 minRows 和 maxRows 属性设置最小和最大高度。它基于 react-textarea-autosize。
没有自动调整大小
如果您想禁用自动调整大小功能,可以使用 disableAutosize 属性。
变体
带有错误消息
您可以结合使用 isInvalid 和 errorMessage 属性来显示无效的文本域。
描述
受控
您可以使用 value 和 onValueChange 属性来控制输入值。
注意:HeroUI
Textarea也支持原生事件,例如onChange,这对于表单库(如 Formik 和 React Hook Form)非常有用。
插槽
- base: 输入框包装器,它处理对齐、放置和整体外观。
- label: 文本域的标签,它显示在文本域的上方、内部或左侧。
- inputWrapper: 包裹
label(当它在内部时) 和innerWrapper。 - input: 文本域输入元素。
- description: 文本域的描述。
- errorMessage: 文本域的错误消息。
- headerWrapper: 包裹
label和clearButton。
数据属性
Textarea 在 base 元素上具有以下属性
- data-invalid: 当文本区域无效时。基于
isInvalid属性。 - data-required: 当文本区域为必填项时。基于
isRequired属性。 - data-readonly: 当文本区域为只读时。基于
isReadOnly属性。 - data-hover: 当文本区域被悬停时。基于 useHover
- data-focus: 当文本区域被聚焦时。基于 useFocusRing。
- data-focus-visible: 当文本区域通过键盘聚焦时。基于 useFocusRing。
- data-disabled: 当文本区域被禁用时。基于
isDisabled属性。
无障碍性
- 使用原生
<input>元素构建。 - 视觉和 ARIA 标签支持。
- 更改、剪贴板、组合、选择和输入事件支持。
- 必填和无效状态通过 ARIA 暴露给辅助技术。
- 支持描述和错误消息帮助文本,通过 ARIA 链接到输入。
API
Textarea 属性
| 属性 | 类型 | 默认值 |
children | | |
minRows | | "3" |
maxRows | | "8" |
cacheMeasurements | | false |
variant | | "flat" |
color | | "default" |
size | | "md" |
radius | | |
label | | |
value | | |
defaultValue | | |
placeholder | | |
startContent | | |
endContent | | |
description | | |
errorMessage | | |
validate | | |
validationBehavior | | "native" |
labelPlacement | | "inside" |
fullWidth | | true |
isRequired | | false |
isReadOnly | | |
isDisabled | | false |
isClearable | | false |
isInvalid | | false |
validationState | | |
disableAutosize | | false |
disableAnimation | | false |
classNames | |
输入事件
| 属性 | 类型 | 默认值 |
onChange | | |
onValueChange | | |
onClear | | |
onHeightChange | |

