changeStatus(event,data,index){
console.log(data.unid)
statusStore({unid:data.unid}).then(rs =>{
if(rs.code == 200){
this.$message.success('状态修改成功!')
}else{
let newData = data;
console.log(newData)//row
console.log(newData.status)//1
// newData.status = newData.status == 1 ? '0' : '1';
// console.log(newData.status)//0
if(newData.status == 1){
this.status == 1;
this.tableData[index] = newData;
}else{
this.status == 0;
}
}
})
}
无论是写if判断还是三元表达式,只有一句更新异常,异常的原因找不出来,点击F12的Network发现无论是接口还是id都拿到了,是返回200,打印也能拿到,也不报错
点击关闭时可以修改成功,点击开启就执行两个事件了开和关
从你上面描述的代码来说,有点难找出问题。第一,el-switch绑定的值是boolean类型还是string类型,从你的代码来看,貌似是绑定的是string类型,那么看看使用有没有问题
<el-switch
v-model="value"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="100"
inactive-value="0">
</el-switch>
这个时候需要指定active-value和inactive-value。
第一,"点击关闭时可以修改成功,点击开启就执行两个事件了开和关"这段描述产生的原因大概率是el-switch绑定值的问题。点击关闭时,触发的是element组件原本的逻辑,正常关闭,然后请求了数据,没有做更新表格的操作,没有问题;然后点击开启时,触发的是element组件原本的逻辑,正常开启,然后请求了数据,做了更新表格的操作,由于更新表格的数据给到el-switch绑定值的逻辑是false,所以被关闭了,造成一闪关闭的问题。