Я получаю из API данные для заполнения компонента типа v-select, компонент заполнен правильно, и я также получаю параметры, которые уже были назначены пользователем (несколько)
И компонент v-select заполнен правильно
Но когда я пытаюсь добавить еще одну опцию, происходит следующее
Вот исходный код
<validation-provider
#default = "validationContext"
name = "skill"
>
<b-form-group
label = "Skills"
label-for = "skill_id"
:state = "getValidationState(validationContext)"
>
<v-select
v-model = "itemData.skills"
:dir = "$store.state.appConfig.isRTL ? 'rtl' : 'ltr'"
multiple
:options = "skillOptions"
:clearable = "false"
:reduce = "(val) => val.value"
input-id = "skill_id"
/>
<b-form-invalid-feedback
:state = "getValidationState(validationContext)"
>
{{ validationContext.errors[0] }}
</b-form-invalid-feedback>
</b-form-group>
</validation-provider>
Здесь у меня есть массив объектов с несколькими элементами
itemEdit.value.skills
Затем сопоставьте, чтобы получить уменьшенный массив только со значением и меткой.
Я проверил, используя только метку без значения, и результат тот же
const openEdit = item => {
isSidebarActive.value = true
itemEdit.value = item
itemEdit.value.skills = item.skills.map(skill => ({
value: skill.id,
label: skill.skill,
}))
isAdd.value = false
}
Все идет правильно, v-модель правильно соответствует доступным параметрам, проблема возникает, когда пользователь взаимодействует с vSelect для добавления другого элемента, уже выбранные элементы исчезают.
заранее спасибо





На основании этой страницы или документации Vue Select, свойство reduce обычно предназначено для использования с реквизитом label и требуется только в том случае, если вы предоставляете объект для v-select.
Я подозреваю, что вы предоставляете массив примитивов в своей v-модели (т. е. itemData.skills — это массив строк) вместо массива объектов. Если вместо этого это массив объектов, то я подозреваю, что у вас либо нет ключа [метка] для объекта (по умолчанию эта метка установлена), либо у вас нет ключа [значение] (то, что вы пытаются вернуться с вашей редукцией).
В идеале вы должны предоставить нам пример ваших данных, чтобы мы могли помочь вам лучше.
спасибо за внимание, проблема решилась удалением:
:reduce="(val) => val.value"
Из
<v-select
v-model = "itemData.skills"
:dir = "$store.state.appConfig.isRTL ? 'rtl' : 'ltr'"
multiple
:options = "skillOptions"
:clearable = "false"
:reduce = "(val) => val.value"
input-id = "skill_id"
/>
Привет @RadicalTurnip, я дополнил вопрос, массив навыков - это массив объектов, спасибо