原因:
由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。深入响应式原理中有相关的讨论。
<div class="basket-paper-content" v-if="reset">
<div class="basket-paper-item-box" v-for="(item,index) in current_list" :key="index">
<div class="paper-item-box-title">
data() {
return {
list: [],
current_list: [],
reset: true,
};
},
for (let i = 0; i < current_list.length; i++) {
for (let j = 0; j < current_list[i].list.length; j++) {
if (current_list[i].list[j].id == id) {
if (type == "up" && j > 0 && j < current_list[i].list.length) {
let tmp = current_list[i].list[j];
current_list[i].list[j] = current_list[i].list[j - 1];
current_list[i].list[j - 1] = tmp;
this.reset = false;
break;
}
}
}
}
//console.log("current_list",current_list)
this.$data.reset = true;
this.$data.current_list = current_list;