小程序二级联动下拉框 vant picker

vant官方提供得例子是什么鬼,谁家数据结构会是这种。。。无语了

const citys = {
  '浙江': ['杭州', '宁波', '温州', '嘉兴', '湖州'],
  '福建': ['福州', '厦门', '莆田', '三明', '泉州']
};

经我改造直接上代码

1、value-key 是json中要显示得文字

 <van-picker columns="{{ columns }}" value-key="name" bind:change="onChange" />

2、js


const citys = {   //想办法把数据结构变成这种,key得名字可以随便,结构一致就行
  '浙江':{
    name: '浙江',
    value: '1',
    list: [{ name: '浙江1', value: 10 }, { name: '浙江2', value: 12 }]
  },
  '福建':{
    name: '福建',
    value: '2',
    list: [{ name: '浙江3', value: 22 }, { name: '浙江4', value: 33 }]
  }
}
Page({
  data: {
    columns: [ 
      {
        values: Object.keys(citys).map(key => citys[key].name), //返回出来得是['浙江','福建']
      },
      { 
        values: citys['浙江'].list, //返回出来得是[{ name: '浙江1', value: 10 }, { name: '浙江2', value: 12 }]
        defaultIndex: 2
      }
    ]
  },
  onChange(event) {
    const { picker, value, index } = event.detail;
    picker.setColumnValues(1, citys[value[0]].list);  
  }
})

绝对好使,js哪里不懂,自己console一下数据看看就懂了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值