<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>