关于vue单选和多选切换过程中的坑
问题:vue单选多选切换时,会报错,<transition-group> children must be keyed: <ElTag>
原因是切换过程中错误栈都在Vue内部
解决办法:select标签加v-if判断,multiple属性加条件multiple,watch监控multiple的变化,先关闭select再重新加载。
<el-select v-if="update" >
<option :multiple="multiple"></option>
</el-select>
<script>
{
data(){
return {
update: true,
updates:[] ,
updateIndex:null,
multiples:[],
multiple:true,
}
},
methods:{
a(){
this.multiple = true
}
},
watch:{
'multiple'(){ //单个监控
this.update = false
setTimeout(()=>{
this.update = true
},300)
} ,
'multiples'(val) {//监控数组时
this.$set(this.updates, this.updateIndex, false)
setTimeout(() => {
this.$set(this.updates, this.updateIndex, true)
}, 300)
},
}}</script>
不足之处:切换过程中有短暂的可见的框变动。功能满足,但实现效果不很理想。