【发布时间】:2021-03-03 18:11:11
【问题描述】:
我有一个对象数组,但是当我想从数组列表中删除一个对象时,只会从末尾删除项目
<div class="hours" v-for="(time, index) in hour" :key="index">
然后我把点击功能放在一个图标上
<b-icon
v-if="time.delete"
icon="x"
width="20"
height="20"
class="delete-time"
@click="deleteTime(index)"
></b-icon>
但是当我去删除时
methods: {
moment,
deleteTime(index) {
this.hour.splice(index, 1);
},
【问题讨论】:
-
你为什么不选择
this.hour.splice(index, 1); -
试过了,还是不行……
-
您在尝试时遇到了什么错误?
this.hour.indexOf(index)将返回未定义。另外,你为什么将:key绑定到time.index而不是简单地绑定到index?请注意,对 key 属性使用索引(可能会因排序而改变)并不是一个好主意。使用对象的属性,最好是唯一 ID -
i left as: key only index 正如你告诉我的那样,我不能使用其他属性,因为它没有任何属性
-
hour是否存在于data中? If not, Vue.js won't track changes。您是否尝试在deleteItem()中同时记录hour和index?他们是你所期望的吗?您能否将hour和index的记录值添加到问题中?
标签: javascript vue.js delete-row splice