Я изучаю Vue, и у меня есть список задач с флажком, который я могу отметить как завершенный. В моем приложении все работает.
Когда я устанавливаю флажок, я добавляю элементы в массив completedItems
. Когда флажок не установлен, я удаляю элементы. Я могу проверить длину массива, и это также правильно.
У меня есть кнопка, которую я могу нажать, чтобы удалить все элементы, отмеченные как завершенные, из моего списка.
Общая логика работает нормально. Статус пометки как завершенный работает, и фактическая запись удаляется, как и ожидалось.
Однако я не могу удалить элемент из фактического представления. Я не уверен, что я делаю неправильно - неправильно обновляю свой массив completedItems
или что-то в этом роде. Элементы, которые я удаляю, исчезнут только после полного обновления страницы.
Вот что я делаю:
<task v-for="item in list.items">...</task>
...
data() {
return {
completedItems: [],
}
},
props: ['list'],
...
axios.delete(...)
.then((response) => {
if (response.status === 204) {
this.completedItems = this.completedItems.filter(i => i !== item);
} else {
console.error('Error: could not remove item(s).', response);
}).catch((error) => {
alert(error);
});
Спасибо за любые предложения!
ИЗМЕНИТЬ
Вот как я сейчас проверяю совпадение, и оно работает правильно, элемент в массиве все еще не удаляется со страницы.
this.completedItems = this.completedItems.filter(i => i.id !== item.data.id);
// i.id = 123
// item.data.id = 123
completed
. Я буду экспериментировать с конкретными значениями. Спасибо за предложение! - person Damon   schedule 09.09.2019list
в качестве реквизита.props: ['list'],
Затем перебираем это. Итак, чтобы удалить элемент с экрана, мне нужно обновить исходный список, переданный в качестве реквизита. - person Damon   schedule 09.09.2019