render списка v-for

прохожу массив с помощью v-for и передаю данные массива в компонент пропсом, в компоненте есть кнопка удаления элемента из массива, создаю пользовательское события которое передает события удаления элемента в родительский компонент, далее по событию удаляется элемент из массива родительского компонента по индексу с компонента которого события было вызвано и элемент из массива удаляется так как нужно, но при перерисовки списка удалённый элемент остаётся а пропадает самый последний элемент

ПОЧЕМУ ТАК ПРОИСХОДИТ ? И КАК ЭТО ИСПРАВИТЬ ?

родительский компонент:

<template>
  <form class="form grid">
    <ul>
      <li v-for="(item, index) in list" :key="index">
        <row :options="item" @delete:item="del(index)"></row>
      </li>
    </ul>
  </form>
</template>

<script>
import row from '@/components/editRow'
// import editInput from '@/components/editInput'
export default {
  props: [
    'content'
  ],
  components: {
    row
  },
  data () {
    return {
      list: this.content
    }
  },
  methods: {
    del (index) {
      console.log(this.list[index])
      this.list.splice(index, 1)
    }
  }
}
</script>

Дочерний компонент:

<template>
  <div class="grid grid_center item">
    <h1>{{ item.text }}</h1>
    <span><button class="btn btn_dark" @click.prevent="itemDelete()">del</button></span>
  </div>
</template>

<script>
export default {
  props: [
    'options'
  ],
  data () {
    return {
      item: this.options
    }
  },
  methods: {
    itemDelete () {
      this.$emit('delete:item', true)
    }
  }
}
</script>

img


Ответы (0 шт):