Javascript 在给定索引处改变数组对象
我想设置一个复制的数组,其中一个对象通过一次变异而改变 我将用代码解释它: 组件具有数组Javascript 在给定索引处改变数组对象,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我想设置一个复制的数组,其中一个对象通过一次变异而改变 我将用代码解释它: 组件具有数组v-model,要修改索引处的对象,我们必须变异所有arary: computed: { array: { get() { return this.$store.state.array; }, set(value) { this.$store.commit('updateArray', value);
v-model
,要修改索引处的对象,我们必须变异所有arary:
computed: {
array: {
get() {
return this.$store.state.array;
},
set(value) {
this.$store.commit('updateArray', value);
},
},
},
onObjectDropped(event) {
// That will mutate array = setter will be called
this.array = [...this.array];
// We take an index of array at which we want to assigne object from 'otherArray'
this.array[index] = this.otherArray[selectedIndex].elements[elementsIndex]
},
我想将第二行从
onObjectDropped
方法移到第一行,在第一行中我们创建它的副本,以便只对数组进行一次变异,因为setter不会使用其他数组中的新值修改数组。…我想从onObjectDropped
方法中移动第二行,并将其添加到第一行。。。。问题是什么?默认情况下,Vue不会检测到数组索引的更改。为此,您需要使用该方法(在您的上下文中,该方法在this.$set
中也有别名)。在您的情况下,可以使用this.$set(this.array,index,this.otherArray[selectedIndex].elements[elementsIndex])
,Vue将检测到更改。