功能:根据用户的点击事件,判断用户选择的选项后,页面显示用户所选内容
改变含有若干对象且对象中包含数组元素的数组中的某一个值,而不是改变整个数组
知识点:
1.选中数组中特定项,并为其赋值
//index代表要改变的元素在数组中的索引
[`Motor_symptoms[${index}].yesOrno`]:1
2.
.wxml
<view wx:for="{{Motor_symptoms}}" wx:key="id" >
<view>{{item.name}}</view>
<picker class="input_border" bindchange="_onChange" value="{{item.yesOrno}}" id="{{item.id}}" range="{{smoking_array}}">
<view class="picker">
{{smoking_array[item.yesOrno]}} //控制显示‘无’或‘有’
</view>
</picker>
</view>
.js
data: {
smoking_array:['无','有'],
// 运动症状
Motor_symptoms:[
{id:1,name:'震颤' ,yesOrno:0, time:'', Parts:''},
{id:2,name:'僵硬' ,yesOrno:0, time:'' },
{id:3,name:'面部表情改变' ,yesOrno:0, time:'' },
{id:4,name:'灵活度障碍' ,yesOrno:0, time:'' },
],
//获取用户点击的数组中对象的索引号,将索引值对应的对象中的yesOrno置为1
_onChange: function (e) {
console.log("传回数据",e);
var i = e.currentTarget.id;
console.log("i=",i);
//如果初始的yesorno==1,则将其改变为0;否则将其改变为1
if (this.data.Motor_symptoms[i-1].yesOrno==0) {
this.setData({
[`Motor_symptoms[${i-1}].yesOrno`]:1
})
}
else{
this.setData({
[`Motor_symptoms[${i-1}].yesOrno`]:0
})
}
},