TextareaItem 多行输入
用于接受多行文本。规则
支持通过键盘或者剪切板输入文本。
通过光标可以在垂直或者水平方向进行移动。
代码演示
受控组件建议使用(rc-form )
import { List, TextareaItem } from 'antd-mobile';
import { createForm } from 'rc-form';
class TextareaItemExample extends React.Component {
state = {
focused: false,
};
render() {
const { getFieldProps } = this.props.form;
return (
<div>
<List renderHeader={() => 'Customize to focus'}>
<TextareaItem
title="标题"
placeholder="auto focus in Alipay client"
data-seed="logId"
autoFocus
autoHeight
/>
<TextareaItem
title="标题"
placeholder="click the button below to focus"
data-seed="logId"
autoHeight
focused={this.state.focused}
onFocus={() => {
this.setState({
focused: false,
});
}}
/>
<List.Item>
<div
style={{ width: '100%', color: '#108ee9', textAlign: 'center' }}
onClick={() => {
this.setState({
focused: true,
});
}}
>
click to focus
</div>
</List.Item>
</List>
<List renderHeader={() => 'Whether is controlled'}>
<TextareaItem
{...getFieldProps('control')}
title="受控组件"
placeholder="Hello World"
/>
<TextareaItem
title="非受控组件"
placeholder="please input content"
/>
</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 icon'}>
<TextareaItem
{...getFieldProps('clear1')}
clear
title="标题"
placeholder="displayed clear icon while typing"
/>
</List>
<List renderHeader={() => 'Custom title(text / image / empty)'}>
<TextareaItem
{...getFieldProps('title3')}
title={<img src="https://os.alipayobjects.com/rmsportal/mOoPurdIfmcuqtr.png" alt="icon" style={{ width: '0.56rem', height: '0.56rem' }} />}
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
适用平台:WEB、React-Native属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | value 值(受控与否参考https://facebook.github.io/react/docs/forms.html) | String | 无 |
defaultValue | 设置初始默认值 | String | - |
placeholder | placeholder | String | '' |
editable | 是否可编辑 | bool | true |
disabled | 是否禁用 | bool | false |
clear | 是否带清除功能 | bool | true |
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 (Web Only ) | textarea 的 name | String | - |
prefixListCls (Web Only ) | 列表 className 前缀 | String | am-list |
autoFocus (Web Only ) | 页面初始化时Textarea自动获取光标,每个页面只有一个Textarea的autpFocus会生效。(不保证所有浏览器都生效) | bool | false |
focused (Web Only ) | 页面运行过程中,Textarea获取光标,当Textarea获取光标(focused 更新为true)后,需要在onFocus 或者onBlur 时再次将该属性设置为false。 | bool | false |
title (Web Only ) | 文案说明 | String/node | '' |
更多属性请参考 react-native TextInput (http://facebook.github.io/react-native/docs/textinput.html)