Skip to content

Textarea 文本域

用于接收多行文本输入,支持自适应高度和字数统计。

基础用法

tsx
import { Textarea } from '@airo-ui/react'

function Demo() {
  return <Textarea placeholder="请输入多行文本" />
}

受控与非受控

tsx
import { useState } from 'react'
import { Textarea } from '@airo-ui/react'

function ControlledDemo() {
  const [value, setValue] = useState('')
  return <Textarea value={value} onChange={(e) => setValue(e.target.value)} placeholder="受控文本域" />
}

function UncontrolledDemo() {
  return <Textarea defaultValue="默认文本" placeholder="非受控文本域" />
}

自适应高度

tsx
import { Textarea } from '@airo-ui/react'

function Demo() {
  return (
    <>
      <Textarea autosize placeholder="自动调整高度" />
      <Textarea autosize={{ minRows: 2, maxRows: 6 }} placeholder="最少2行,最多6行" />
    </>
  )
}

字数统计

tsx
import { Textarea } from '@airo-ui/react'

function Demo() {
  return <Textarea maxlength={200} showCount placeholder="最多输入200字" />
}

标签与错误

tsx
import { Textarea } from '@airo-ui/react'

function Demo() {
  return (
    <>
      <Textarea label="描述" placeholder="请输入描述" />
      <Textarea label="备注" error errorMessage="内容不能为空" />
    </>
  )
}

API

Props

名称类型默认值说明
valuestring受控模式当前值
defaultValuestring非受控模式默认值
placeholderstring占位文本
disabledbooleanfalse是否禁用
readonlybooleanfalse是否只读
errorbooleanfalse是否处于错误状态
errorMessagestring错误提示信息
labelstring标签文本
rowsnumber固定行数
maxlengthnumber最大字符数
showCountbooleanfalse是否显示字数统计
autosizeboolean | { minRows?: number, maxRows?: number }false自适应高度
onChange(e: ChangeEvent) => void值变化时触发
onFocus(e: FocusEvent) => void获得焦点时触发
onBlur(e: FocusEvent) => void失去焦点时触发

MIT License