el-table中点击el-switch值是改变了,但是滑块不能左右滑动
记录下本菜鸟遇到的基础问题
<el-table-column label="开关" width="60%" align="center">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" active-color="#62B4D0"
inactive-color="#8a939c"
active-value="1"
inactive-value="0"
@change="controlSwitch($event,scope.row)">
</el-switch>
</template>
</el-table-column>
这是我写的表格里需要放滑块来表示状态,这里 active-value没加冒号,所以值是字符串,字符串和数字不要搞错了,容易弄混出错。
然后看效果图,就是滑块点上去,打印出来的值是变了,就是滑块左右滑动那里,一直点不动,没反应。
解决办法:
this.controlData=[{state:'1',address:1},{state:'1',address:2},{state:'1',address:3}]
this.controlData是表格绑定的数组,这里的数据被我删减了,原数据太长了,我截了最主要的两属性
controlSwitch(val,row){ //change里对应的函数
console.log(val,row)
this.$set(this.controlData, row.address-1 ,row)
},
就是要用 this.$set重新赋值,之前值变化了,对应的数据并没有及时更新的原因,所以点不动,这里要重新赋值让数据及时更新。
这个问题困扰了我一下午,本菜鸟在这记录下~~