在vue中,我们通过v-for循环出来的页面,如下图这种:
<view class="border-b row ai-c mt-1" v-for="(tab,i) in item.__config__.children" :key="i">
<picker class="full" v-if="tab.__config__.tagIcon=='select'"
:placeholder="tab.placeholder" @change="bindPickerChangetwo(index,i,$event)"
:range="tab.__slot__.options" range-key="label">
<view class="full">{{tab.__slot__.options[tab.chooseIndex].label}}</view>
</picker>
</view>
我们通过方法来对数组进行添加后,会出现改动一个值,其他的值都跟着变的情况
这个是因为对象是引用数据类型,所以他被保存在栈内存中,如果他被赋值赋值的其实是对象的指针所以他们都指向同一个地址,一个修改其他的也会被修改
我们可以通过深拷贝将其转换成基本数据类型,就可以解决这个问题啦
let obj = {}
obj = JSON.parse(JSON.stringify(data))
arr.push(obj)
arr就是你的数组
data是你要往数组里添加的对象
好啦,到这里就结束啦,拜拜拜拜