<input type="checkbox" v-on:click.prevent="onClick" />
數組渲染因為下標問題,導致點上一個復選框拿走數據之后,下一個數據的復選框狀態會改變,所以通過prevent去阻止事件的冒泡。讓復選框依然是數據的原本狀態,這是第一種解決辦法。
第二種解決辦法就是直接找到checked重新改成true狀態
<template>
<div v-for="(item,index) in list" :key="index">
<input type="checkbox" :checked="item.state" v-on:click="onClick(index)" />
</div>
<template/>
<script>
export default{
data(){
return{
list:[
{id:1,state:true},
{id:2,state:true},
{id:1,state:true},
{id:1,state:true}
]
}
},
methods:{
onClick(i){
this.list.splice(i,1);
//通過event 找到狀態重新改成原來的true
window.event.target.checked=true;
}
}
}
</script>
