TextareaItem 多行输入
用于接受多行文本。规则
支持通过键盘或者剪切板输入文本。
通过光标可以在垂直或者水平方向进行移动。
代码演示
受控组件建议使用(rc-form )
import { List, TextareaItem } from 'antd-mobile';
import { createForm } from 'rc-form';
class TextareaItemExample extends React.Component {
componentDidMount() {
this.autoFocusInst.focus();
}
render() {
const { getFieldProps } = this.props.form;
return (
<div>
<List renderHeader={() => 'Customize to focus'}>
<TextareaItem
title="标题"
placeholder="auto focus in Alipay client"
data-seed="logId"
ref={el => this.autoFocusInst = el}
autoHeight
/>
<TextareaItem
title="标题"
placeholder="click the button below to focus"
data-seed="logId"
autoHeight
ref={el => this.customFocusInst = el}
/>
<List.Item>
<div
style={{ width: '100%', color: '#108ee9', textAlign: 'center' }}
onClick={() => this.customFocusInst.focus()}
>
click to focus
</div>
</List.Item>
</List>
<List renderHeader={() => 'Whether is controlled'}>
<TextareaItem
{...getFieldProps('control')}
title="受控组件"
placeholder="controlled"
/>
<TextareaItem
title="非受控组件"
placeholder="please input content"
clear
/>
</List>
<List renderHeader={() => 'Auto / Fixed height'}>
<TextareaItem
{...getFieldProps('note3')}
title="高度自适应"
autoHeight
labelNumber={5}
/>
<TextareaItem
{...getFieldProps('note1')}
rows={3}
placeholder="fixed number of lines"
/>
</List>
<List renderHeader={() => 'Show clear'}>
<TextareaItem
{...getFieldProps('clear1')}
clear
title="标题"
placeholder="displayed clear while typing"
/>
</List>
<List renderHeader={() => 'Custom title(text / image / empty)'}>
<TextareaItem
{...getFieldProps('title3')}
title={<img src="https://gw.alipayobjects.com/zos/rmsportal/nywPmnTAvTmLusPxHPSu.png" style={{ width: '28px', height: '28px' }} alt="" />}
placeholder="title can be customized"
/>
</List>
<List renderHeader={() => 'Limited value length'}>
<TextareaItem
{...getFieldProps('note4')}
placeholder="can enter up to 10 characters"
count={10}
/>
</List>
<List renderHeader={() => 'Count'}>
<TextareaItem
{...getFieldProps('count', {
initialValue: '计数功能,我的意见是...',
})}
rows={5}
count={100}
/>
</List>
<List renderHeader={() => 'Not editable / Disabled'}>
<TextareaItem
{...getFieldProps('note6', {
initialValue: 'not editable',
})}
title="姓名"
editable={false}
/>
<TextareaItem
value="disabled style"
title="姓名"
disabled
/>
</List>
</div>
);
}
}
const TextareaItemExampleWrapper = createForm()(TextareaItemExample);
ReactDOM.render(<TextareaItemExampleWrapper />, mountNode);
.demoTitle:before,
.demoTitle:after {
border-bottom: none;
}
API
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | value 值(受控与否参考https://facebook.github.io/react/docs/forms.html) | String | 无 |
defaultValue | 设置初始默认值 | String | - |
placeholder | placeholder | String | '' |
editable | 是否可编辑 | bool | true |
disabled | 是否禁用 | bool | false |
clear | 是否带清除功能(仅editable 为true ,disabled 为false 才生效) | bool | false |
rows | 显示几行 | number | 1 |
count | 计数功能,兼具最大长度,默认为0,代表不开启计数功能 | number | - |
onChange | change 事件触发的回调函数 | (val: string): void | - |
onBlur | blur 事件触发的回调函数 | (val: string): void | - |
onFocus | focus 事件触发的回调函数 | (val: string): void | - |
error | 报错样式 | bool | false |
onErrorClick | 点击报错 icon 触发的回调 | (): void | 无 |
autoHeight | 高度自适应, autoHeight 和 rows 请二选一 | bool | false |
labelNumber | 定宽枚举值:num * @input-label-width: 34px ,可用2-7 之间的数字,一般(不能保证全部)能对应显示出相应个数的中文文字(不考虑英文字符) | number | 5 |
name | textarea 的 name | String | - |
prefixListCls | 列表 className 前缀 | String | am-list |
title | 文案说明 | String/node | '' |
TextareaItem methods
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
focus | 强制获得焦点 | - | - |