【发布时间】:2026-02-06 00:50:01
【问题描述】:
我有以下问题:我有一个带有复选框列表和两个输入的父组件。因此,当这两个输入中的任何一个发生更改时,我需要取消选中所有复选框。如果您能帮我解决这个问题,我将不胜感激。
我想更改checkedItem 以在子级中触发watch,然后更新所有子级,但它不起作用。
parent.vue
<template>
<div class="filter-item">
<div class="filter-checkbox" v-for="item in filter.items">
<checkbox :item="item" v-model="checkedItem"> {{ item }} </checkbox>
</div>
<div class="filter-range">
<input v-model.number="valueFrom">
<input v-model.number="valueTo">
</div>
</div>
</template>
<script>
import checkbox from '../checkbox.vue'
export default {
props: ['filter'],
data() {
return {
checkedItem: false,
checkedItems: [],
valueFrom: '',
valueTo: '',
}
},
watch: {
'checkedItem': function () {},
'valueFrom': function () {},
'valueTo': function () {}
},
components: {checkbox}
}
</script>
child.vue
<template>
<label>
<input :value="value" @input="updateValue($event.target.value)" v-model="checked" class="checkbox"
type="checkbox">
<span class="checkbox-faux"></span>
<slot></slot>
</label>
</template>
<script>
export default {
data() {
return {
checked: ''
}
},
methods: {
updateValue: function (value) {
let item = this.item
let checked = this.checked
this.$emit('input', {item, checked})
}
},
watch: {
'checked': function () {
this.updateValue()
},
},
created: function () {
this.checked = this.value
},
props: ['checkedItem', 'item']
}
</script>
【问题讨论】:
-
我是 Vuejs 新手,但在我看来,“已检查”手表只是调用 updateValue 函数,但它不返回任何值
-
如何将
checkedItem更改为checkedItem = []。有用吗? -
@HarshalCarpenter,不,它没有:(
标签: javascript vue.js