Picker 选择器
在一组预设值中进行选择,eg:省市区选择。规则
尽量使用 Picker 来帮助用户完成输入,避免用户通过键盘直接输入。
DatePicker 是 Picker 的特定模式。
代码演示
数据级联选择示例. (rc-form 文档)
import { Picker, List } from 'antd-mobile';
import district from 'site/data/district';
import { createForm } from 'rc-form';
let Test = React.createClass({
getInitialState() {
return {
data: [],
};
},
onClick() {
console.log('start loading data');
setTimeout(() => {
this.setState({
data: district,
});
}, 500);
},
setVal() {
this.props.form.setFieldsValue({
district: ['340000', '340800', '340822'],
});
},
render() {
const { getFieldProps } = this.props.form;
return (<div>
<List style={{ backgroundColor: 'white' }}>
<List.Header>联动选择</List.Header>
<List.Body>
<Picker extra="请选择(可选)" data={district} title="选择地区" {...getFieldProps('district', {
initialValue: ['340000', '340800', '340824'],
})}>
<List.Item arrow="horizontal">省市区选择</List.Item>
</Picker>
<Picker data={this.state.data} cols={2} {...getFieldProps('district2')}>
<List.Item arrow="horizontal" onClick={this.onClick}>省市选择(异步加载)</List.Item>
</Picker>
<Picker data={district} cols={1} {...getFieldProps('district3')} className="forss">
<List.Item arrow="horizontal">选择省份</List.Item>
</Picker>
{/* <List.Item><Button inline size="small" onClick={this.setVal}>手动设置省市区</Button></List.Item> */}
</List.Body>
</List>
</div>);
},
});
Test = createForm()(Test);
ReactDOM.render(<Test />, mountNode);
API
成员 | 说明 | 类型 | 默认值 |
---|---|---|---|
data | 数据源 | Array<{value, label, children: Array}> | - |
value | 值, 格式[value1, value2, value3], 对应数据源的N级value | Array | - |
format | 格式化选中的值 | Function | (values) => { return values.join(','); } |
cols | 列数 | Number | 3 |
onChange | 选中后的回调 | Function(value) ,如果使用rc-form,一般不需要自己处理 | - |
children | 通常是List.Item | Object | List.Item |
okText | 选中的文案 | String | 确定 |
dismissText | 取消选中的文案 | String | 取消 |
title | 大标题 | String | - |
extra | Children如果是List.Item,则是extra属性的默认值, 如果是其它的UI组件,则value或者extra属性会经过format方法处理后传给children的extra属性,用户需要自己实现这个属性 | String | 请选择 |
style | 样式 | Object | 无 |