Есть компонент Period. В цикле по массиву periods вывожу компоненты Period передавая туда отдельный объект
<template v-for="(period, index) in periods">
<Period :period="period" :key="period.key"></Period>
</template>
period.key генерируется автоматически при добавлении в массив periods. Внутри компонента Period есть метод удаления периода, удаляет сам себя
this.$parent.periods.splice(index, 1);
index при удалении совпадает с index в массиве.
Теперь сама проблема. Добавляю 3 периода, удаляю период с индексом 0, потом 1, потом 2 - всё корректно. Если же удалю сначала с индексом 1, потом с индексом 0, то будет ошибка "[Vue warn]: Error in nextTick: "NotFoundError: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.""
Если при выводе компонента Period убрать :key или поставить :key="period.index", то всё работает корректно. Почему так происходит?
по-моему более явно кидать евент родителю и там удалять элемент
Обсуждают сегодня