问一下,computed 与 click checkbox 是否冲突,导致checkbox不刷新,谢谢
发布于 3 年前 作者 banyungong 1290 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

vue version: 3.9.1
全新脚手架项目,代码非常少,bug原因不明,就是点一个checkbox导致另一个checkbox被选中,或点取消选中,另一个checkbox也被取消选中。。。。

我在练习TODOLIST,用了 computed 属性,结果在页面上点来点去,都是checkbox状态不一致的bug。
还请前辈过目啊,代码共50行,谢谢了。

<template>
  <div id="app">
    <h2>正在进行</h2>
    <ul>
      <li v-for="item in notChecked"  v-bind:key="item.happy">
         <input type="checkbox" v-model="item.checked"/> {{item.title}}
      </li>
    </ul>
    <h2>已经完成</h2>
    <ul>
      <li v-for="item in beChecked"  v-bind:key="item.nothappy">
         <input type="checkbox" v-model="item.checked"/> {{item.title}}
      </li>
    </ul>

  </div>
</template>

<script>
export default {
  name: 'app',
  data() {
    return {
      todo: '',
      list: [
        {
          title: '这是一个状态',
          checked: true
        },
        {
          title: '这是另一个状态',
          checked: true
        }
      ]
    }
  },
  computed: {
    notChecked: function() {
      return this.list.filter((item) => { return !item.checked; }); 
    },
    beChecked: function() {
      return this.list.filter((item) => { return item.checked; }); 
    }
  }
}
</script>

<style>
</style>
回到顶部