代码大致如下
<template>
<input
type="checkbox"
@click="handleCheckAll"
:checked="isCheckAll"
/>
</template>
<script lang="ts" setup>
// 当前可选项
const availableIds = computed(() => list.value.filter(item => isEnable(item.status)).map(item => item.id))
// 是否全选
const isCheckAll = computed(() => state.selectedAreas.join().includes(availableIds.value.join()))
// 全选/取消全选
const handleCheckAll = (e:Event) => {
e.preventDefault()
const targetChecked = (e.target as HTMLInputElement).checked
if (targetChecked) {
state.selectedAreas = availableIds
console.log("isCheckAll", isCheckAll.value) // 这里打印是返回true的,但是不知道为什么视图不显示checked
} else {
state.selectedAreas = []
}
}
</script>
改成这样呢?
还不行的话 把click 换成 @change?