формами->чекбоксы есть пример, когда чекбоксы сгруппированы и у них v-model ссылается на одно поле типа массив, в результате мы имеем массив значений нажатых чекбоксов.
Но у меня возникла проблема: чекбокс сам является компонентом и в результате, я максимум что вижу это последний нажатый чекбокс.
Я реализовал пример из доков и то что мне нужно. Как добиться одинакового результата (на выходе получить массив нажатых чекбоксов)
https://codesandbox.io/s/suspicious-almeida-gxjom?file=/src/components/CheckboxListItem.vue
С компонентами так лучше не делать они не должны модифицировать состояние по вашему примеру. То есть вы должны эмитить событие change с текущим значением checkbox и уже в компоненте где вы их рисуете писать логику, добавлять или удалять это значение из массива. Делать это внутри компонента чекбокса не желательно.
Спасибо, попробую реализовать как вы предложили
Вместо checkedItems стоит использовать вычисляемое свойство с геттером и сеттером. Не нужно ничего вотчить. computed: { fieldValue: { get() { return this.checked }, set(value) { this.$emit('update:checked', value) } } } https://v3.vuejs.org/guide/component-basics.html#using-v-model-on-components
Большое спасибо, все действительно оказалось просто) а отняло пару дней
Обсуждают сегодня