Picker 选择器
定义/Definition
选择器展示了一组值,用户可以从中选择一个。 适用于数据有级联关系的选择器,比如省市区选择
、商品分类选择
。
规则 / Rule
是日期时间选择器的通用模式
包括一个或多个滑轮,每个滑轮含有一组值
当前选中的值在中间,以深色标识
不可以自定义大小(选择器的大小与iPhone的键盘相同)
代码演示
数据级联选择示例
import { Picker, List, Button } 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>
<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')}>
<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 | 无 |