点击前:
点击后:
<view class="item">
<view class="title">选择学员</view>
<view class="line flex justify-between" style="width: 100%;">
<view class="desc">
{{checkStudents[studentIndex].name}}
</view>
<picker mode="selector" :range="checkStudents" range-key="name" @change="checkStudent" :value="studentIndex" class="right">选择</picker>
</view>
</view>
<view class="item">
<view class="title">任课老师</view>
<view class="line flex justify-between" style="width: 100%;">
<view class="desc">
{{checkTeachers[teacherIndex]}}
</view>
<picker mode="selector" :range="checkTeachers" @change="checkTeacher" :value="teacherIndex" class="right">选择</picker>
</view>
</view>
说明:因为姓名可能会相同,最好给个id区分,例如选择学员checkStudents数组。为了方便区分,选择任课老师我就没有用id了。
data() {
return {
checkStudents:[
{
id:0,
name:'刘新华'
},
{
id:1,
name:'路招摇'
},
{
id:2,
name:'白露'
},
{
id:3,
name:'任菲菲'
},
{
id:4,
name:'刘德华'
}
],
studentIndex:0,
checkTeachers:[
"张飒","路招摇","白露","任菲菲","刘德华","张大某","杨紫","李一飞","白岳峰","朱砂痣"
],
teacherIndex:0,
};
},
methods: {
// 选择学员
checkStudent:function(e){
this.studentIndex = e.detail.value;
},
// 选择任课老师
checkTeacher:function(e){
this.teacherIndex = e.detail.value;
},
}
如果你的数据是对象数组
就会有个坑 弹出来的的选项直接是[object Object]
解决办法==》
只需要将rang-key中的字符串加上单引号即可
:range-key="‘name’"
如下代码所示
<picker mode="selector" :range="userList" @change="choice1" :value="aIndex" :range-key="'name'">
<view class="pbox" style="width: 180rpx;height: 60rpx;">
<view class="picker">{{userList[aIndex].name}}</view>
</view>
</picker>