尝试一:
我先通过每个van-checkbox上绑定的ref值来实现,代码如下:
<van-checkbox-group v-model="checked">
<van-cell-group inset>
<van-cell
v-for="(item, index) in deviceList"
clickable
:key="item"
:title="item.extras.basic.dispName"
@click="toggle(index)"
>
<template #right-icon>
<van-checkbox
v-model="select"
:name="item"
:ref="(el) => (checkboxRefs[index] = el)"
@click.stop
@click="changeSelect"
/>
</template>
</van-cell>
</van-cell-group>
</van-checkbox-group>
const checkboxRefs = ref([]);
for (let i = 0; i < checkboxRefs.value.length; i++) {
checkboxRefs.value[i].checked = true;
}
最后发现这样实现不了…
尝试二:
我在一开始给van-checkbox-group绑定的数组赋值,内容就是所有可选信息的对象
const checked = ref([]);
// deviceList是获取的所有可选信息
deviceList.value.map((item) => {
checked.value.push(item);
});
// 传递指给父组件
emits("selectDevice", toRaw(checked.value));
这种方式可以实现我想要的效果√