我正在尝试动态填充和排序v-select使用的数组。但是,我遇到了es lint警告“计算属性中的意外副作用”,因为我在该调用中改变了对象。是否有更合适的模式将新数据附加到数组并对其排序?这里有一些快捷方式;用肮脏的代码来理解要点
// SomeFile.vue
<MySelectComponent :someData="changingArray" />
// MySelectComponent.vue
<v-select v-model="selectedItems" :items="mergeWithNewData" >
...
props: {
someData: Array,
},
data: () => ({
selectedItems: [],
holdsEverything: [],
},
computed: {
mergeWithNewData() {
this.someData.forEach(item => {
if (!this.holdsEverything.includes(item)){
this.holdsEverything.push(item);
this.holdsEverything.sort();
}
});
return this.holdsEverything;
},
}
例如,假设changingArray以['a','b','c']开头。当代码运行时,数组现在是['b','z']。holdsEverything应该是['a','b','c','z']