Vue.js 使用Vue可拖动的计算阵列

Vue.js 使用Vue可拖动的计算阵列,vue.js,vuejs2,Vue.js,Vuejs2,我在这里使用vuedraggable组件: 我是这样设置的: <draggable v-model="filteredItems"> <div class="item" v-for="item in filteredItems">{{item.name}}</div> </draggable> computed: { get: function() { return thi

我在这里使用vuedraggable组件:

我是这样设置的:

<draggable v-model="filteredItems">
  <div class="item" v-for="item in filteredItems">{{item.name}}</div>
</draggable>
computed: {
  get: function() {
   return this.items.filter(item => {
     if(item.category_id == this.activeCategory.id) return true;
   })
  },
  set: function(newValue) {
    console.log(newValue);  // This new value is the new data I want.
    return newValue;
  }
}
我认为返回
newValue
可以正确设置数据,但只要拖放完成,它就会恢复到原来的值

这对非计算变量非常有效,
newValue
中的数据正是我所需要的,我不完全理解如何将computed属性设置为
newValue


有什么想法吗?我尝试了几种方法来重置计算属性,但没有一种有效。

返回新值不会(重新)设置
数据
项,但将“本地”项(在您的情况下,
)设置为该项将有效

计算:{
过滤数据:{
//吸气剂
设置(新值){
//这条线
this.items=newValue;
}
}
}

p.S.不得不删除我以前愚蠢的回答。我一定是喝醉了,错过了本地项目已经在要过滤的
数据中的事实

返回新值不会(重新)设置
数据
项,但会将“本地”项(在您的情况下是
)设置为它

计算:{
过滤数据:{
//吸气剂
设置(新值){
//这条线
this.items=newValue;
}
}
}

p.S.不得不删除我以前愚蠢的回答。我一定是喝醉了,错过了本地项目已经在要过滤的
数据中的事实

是的,现在工作得很好,我想如果我更新这个。items,它会删除未过滤的项,但它没有这样做,我想我不完全理解setter是如何工作的,但它工作得很好now@Jordash它不会删除它们,这就是为什么我提到“本地”数据,计算出来的是副本。是的,现在工作得很好,我想如果我更新这个。它会删除未过滤的项目,但它没有这样做,我想我不完全理解setter是如何工作的,但它工作得很好now@Jordash它不会删除它们,这就是为什么我提到“本地”数据,计算出的是副本。