van-picker 里 value-key 的使用

2025-10-31 20:03:13

1、前言:

vant 的 van-picker 选择器 里面的 数据 columns 为一个数组  

例: columns: ['杭州', '宁波', '温州', '绍兴', '湖州', '嘉兴', '金华', '衢州']

van-picker 里 value-key 的使用

2、需求: 

需要页面展示内容,传给后端字段是id,故应该把 columns 值改成以下形式:

columns 为   columns:[

             {

               value:'001',

               label:'春天'

             },

             {

               value:'002',

               label:'夏天'

             },

             {

               value:'003',

               label:'秋天'

             },

             {

               value:'004',

               label:'冬天'

             }

        ]

 以label 值渲染前端页面 ,传给后端字段值为value ,使用 value-key 来解决此需求

van-picker 里 value-key 的使用

3、完整代码:

<template>

  <div>

    <van-cell @click="openPop" :value="value" title="四季" is-link value-class="black" arrow-direction="down" center>

    </van-cell>

    <van-popup v-model="showPicker" round position="bottom">

      <!-- 注意:  value-key="label" label 对应 columns 的值 -->

      <van-picker

        value-key="label"

        show-toolbar

        :columns="columns"

        @cancel="showPickers = false"

        @confirm="onConfirm"

      />

    </van-popup>

  </div>

</template>

<script>

export default {

  data() {

    return {

      value: '', // 前端回显的值

      prcCode: '', // 后端接收的值

      showPicker: false,

      columns: [

        {

          value: '001',

          label: '春天'

        },

        {

          value: '002',

          label: '夏天'

        },

        {

          value: '003',

          label: '秋天'

        },

        {

          value: '004',

          label: '冬天'

        }

      ]

    }

  },

  methods: {

    openPop() {

      this.showPicker = true

    },

    onConfirm(val) {

      console.log(val, 'val 是个对象')

      this.showPicker = false

      this.value = val.label

      this.prcCode = val.value

      console.log(this.value, '前端回显的值', this.prcCode, '后端接收的值')

    }

  }

}

</script>

4、成品展示:

van-picker 里 value-key 的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢