用mpvue框架和原生的微信小程序有一定差异性,之前在做选择器的时候用原生的方法怎么都不行,最后找到了解决办法。
数据为数组,代码如下:
<template>
<div class="cost-estimation">
<view class="section">
<picker mode="selector" @change="bindPickerChange" :index="index" :range="array">
<view>
当前选择的国家:{{array[index]}}
</view>
</picker>
</view>
</div>
</template>
<script>
export default {
data () {
return {
array: ['中国', '美国', '日本', '韩国'],
index: 0
}
},
methods: {
bindPickerChange: function (e) {
console.log('picker发送选择改变,携带值为', e)
this.index = e.mp.detail.value
}
}
}
</script>
数据为数组对象,代码如下:
<template>
<div class="cost-estimation">
<view class="section">
<picker mode="selector" @change="bindPickerChange" :index="index" :range="objectarray" :range-key="'name'">
<view>
当前选择的国家:{{objectarray[index].name}}
</view>
</picker>
</view>
</div>
</template>
<script>
export default {
data () {
return {
objectarray: [
{
id: 1,
name: '中国'
},
{
id: 1,
name: '美国'
},
{
id: 1,
name: '日本'
},
{
id: 1,
name: '韩国'
}
],
index: 0
}
},
methods: {
bindPickerChange: function (e) {
this.index = e.mp.detail.value
}
}
}
</script>
注意: 1、在 mpvue 中 template 部分不是 bindchange 也不是 @click
2、数据为数组对象时,range-key 对应的 'name' 要加引号