开发中容易遇到的问题
Created At :
Views 👀 :
js中数组push对象,原有的值总是被最后一次的值覆盖的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <script setup lang="ts"> interface List { idx?: number, value: string } const dataList: List[] = reactive([]) const list:List = {value:''} const addInput = () => { data.idx = dataList.length+1 dataList.push(list) console.log(dataList) } </script> 输出dataList的值 //[{"value":"","idx":1}] //[{"value":"","idx":2},{"value":"","idx":2}] //[{"value":"","idx":3},{"value":"","idx":3},{"value":"","idx":3}]
|
原因:dataList中保存的是list的地址,最后一次改变list.name以后,dataList中引用的地址的值也已经被改变。
解决方案:最简单的就把list的定义写在方法内部。其他方案自行研究
---