Picker 选择器
引入
在或index.json
中引入组件,详细介绍见快速上手。
基础用法
<van-picker columns="{{ columns }}" bind:change="onChange" />
import Toast from 'path/to/@vant/weapp/dist/toast/toast';
Page({
data: {
columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
},
onChange(event) {
const { picker, value, index } = event.detail;
},
});
默认选中项
单列选择器可以直接通过default-index
属性设置初始选中项的索引值。
<van-picker
show-toolbar
title="标题"
columns="{{ columns }}"
bind:cancel="onCancel"
bind:confirm="onConfirm"
/>
import Toast from 'path/to/@vant/weapp/dist/toast/toast';
Page({
data: {
},
onConfirm(event) {
const { picker, value, index } = event.detail;
Toast(`当前值:${value}, 当前索引:${index}`);
},
onCancel() {
Toast('取消');
},
});
多列联动
浙江: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
福建: ['福州', '厦门', '莆田', '三明', '泉州'],
};
Page({
data: {
columns: [
{
values: Object.keys(citys),
className: 'column1',
},
{
values: citys['浙江'],
className: 'column2',
},
],
},
onChange(event) {
const { picker, value, index } = event.detail;
picker.setColumnValues(1, citys[value[0]]);
},
});
禁用选项
<van-picker columns="{{ columns }}" />
加载状态
当 Picker 数据是通过异步获取时,可以通过 loading
属性显示加载提示。
API
Events
Picker 组件的事件会根据 columns 是单列或多列返回不同的参数。
Columns 数据结构
外部样式类
通过 selectComponent 可以获取到 picker 实例并调用实例方法。