关于Vant组件库Area省市区使用相关问题

一、版本
Vant 版本:V4(适用于vue3)
二、当前问题(踩坑总结)

控制选中项中,v-model绑定的是字符串的类型。一开始并没有看到相关使用案例,导致以下问题出现。

问题① (v-model 和 :v-model 的区别?

v-model绑定的数据类型是string,而非数组。

const state = reactive({
  cityNumber: ['440000', '440300', '440303'], // 省市区地址码
})

// 选中所在城市
const cityConfirm = (value: any) => {
  state.cityNumber = value.selectedValues // 保存省市区地址码
  state.showCity = false
}

<van-area  title="选择所在城市" :area-list="areaList" v-model="state.cityNumber" @confirm="cityConfirm" @cancel="state.showCity = false" />

但是

v-model 改为 :v-model 后可以实现双向绑定,但是仅限于第二次选择后。初始化数据依旧无法跳转至正确的位置。

1、初始化数据无法跳转至正确的地区码位置 

2、再次选择后的地区可以正确跳转

 三、正确用法

1、vant组件中有比较齐全的地区数据,可以直接使用。

2、 按照说明导入area组件后,直接使用即可,此处v-moed绑定的地区码可以为string类型,如果需要跳转至准确区,需要此处的value值便为区码,以此类推。

// 精确到省份

const state = reactive({
  cityNumber: '440000', // 省地址码
})

// 选中所在城市
const cityConfirm = (value: any) => {
  state.cityNumber = value.selectedValues[0] //保存省地址码
  state.showCity = false
}

<van-area  title="选择所在城市" :area-list="areaList" v-model="state.cityNumber" @confirm="cityConfirm" @cancel="state.showCity = false" />

// 精确到区

const state = reactive({
  cityNumber: "110101", // 区地址码
})

// 选中所在城市
const cityConfirm = (value: any) => {
  state.cityNumber = value.selectedValues[2] // 保存区地址码
  state.showCity = false
}

<van-area  title="选择所在城市" :area-list="areaList" v-model="state.cityNumber" @confirm="cityConfirm" @cancel="state.showCity = false" />

 四、疑惑

关于v-model 和 :v-model 的区别。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值