Picker 选择器

引入

在或index.json中引入组件,详细介绍见快速上手

基础用法

  1. <van-picker columns="{{ columns }}" bind:change="onChange" />
  1. import Toast from 'path/to/@vant/weapp/dist/toast/toast';
  2. Page({
  3. data: {
  4. columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
  5. },
  6. onChange(event) {
  7. const { picker, value, index } = event.detail;
  8. },
  9. });

默认选中项

单列选择器可以直接通过default-index属性设置初始选中项的索引值。

  1. <van-picker
  2. show-toolbar
  3. title="标题"
  4. columns="{{ columns }}"
  5. bind:cancel="onCancel"
  6. bind:confirm="onConfirm"
  7. />
  1. import Toast from 'path/to/@vant/weapp/dist/toast/toast';
  2. Page({
  3. data: {
  4. },
  5. onConfirm(event) {
  6. const { picker, value, index } = event.detail;
  7. Toast(`当前值:${value}, 当前索引:${index}`);
  8. },
  9. onCancel() {
  10. Toast('取消');
  11. },
  12. });

多列联动

  1. 浙江: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
  2. 福建: ['福州', '厦门', '莆田', '三明', '泉州'],
  3. };
  4. Page({
  5. data: {
  6. columns: [
  7. {
  8. values: Object.keys(citys),
  9. className: 'column1',
  10. },
  11. {
  12. values: citys['浙江'],
  13. className: 'column2',
  14. },
  15. ],
  16. },
  17. onChange(event) {
  18. const { picker, value, index } = event.detail;
  19. picker.setColumnValues(1, citys[value[0]]);
  20. },
  21. });

禁用选项

  1. <van-picker columns="{{ columns }}" />

加载状态

当 Picker 数据是通过异步获取时,可以通过 loading 属性显示加载提示。

    API

    Events

    Picker 组件的事件会根据 columns 是单列或多列返回不同的参数。

    Columns 数据结构

    外部样式类

    通过 selectComponent 可以获取到 picker 实例并调用实例方法。