Я написал этот код, чтобы получить список навыков. Если у пользователя уже есть определенный навык, элемент списка должен быть обновлен до active = false
.
Это мой исходный код:
setup () {
const user = ref ({
id: null,
skills: []
});
const available_skills = ref ([
{value: 'css', label: 'CSS', active: true},
{value: 'html', label: 'HTML', active: true},
{value: 'php', label: 'PHP', active: true},
{value: 'python', label: 'Python', active: true},
{value: 'sql', label: 'SQL', active: true},
]);
const computed_skills = computed (() => {
let result = available_skills.value.map ((skill) => {
if (user.value.skills.map ((sk) => {
return sk.name;
}).includes (skill.label)) {
skill.active = false;
}
return skill;
});
return result;
})
return {
user, computed_skills
}
},
Это отлично работает при первоначальном рендеринге. Но если я удаляю навык у пользователя, выполняющего user.skills.splice(index, 1)
, computed_skills
не обновляются.
Почему так?
user.skills = user.skills.filter((skill) => {/* filter logic here */});
- person Asimple   schedule 17.02.2021