vue 列表 数据复用问题
2022-12-09 本文已影响0人
CoderZb
需求:切换不同的radio,展示不同的时间选择框。
如下所示:按星期
这个radio,有开始时间
和结束时间
这两个选择器;按时刻
这个radio,也有开始时间
和结束时间
这两个选择器,且都是通过数组遍历来渲染出来的(addTimeList1:[{ id: 0 }]
和addTimeList2:[{ id: 0 }]
)。当在按星期
这个radio中输入时间,切换到按时刻
这个radio时,刚才输入的时间也会显示到该radio中的时间选择器里面。
原因:由于id重复造成了数据复用。因为addTimeList1和addTimeList2
数组中的id都是从0开始的,造成了:key="item.id"
对应的key都是一样的。
解决办法:将addTimeList1:[{ id: 0 }]
、addTimeList2:[{ id: 0 }]
)改成addTimeList1:[{ id: 200 }]
、addTimeList2:[{ id: 1000 }]
,使id不会有重复即可。
<div v-if="useDateType==2" class="margin_fill" style="height:32px;" v-for="(item,index) in addTimeList2" :key="item.id">
</div>
<div v-if="useDateType==3" class="margin_fill" style="height:32px;" v-for="(item,index) in addTimeList3" :key="item.id">
</div>
addTimeList2:[{ id: 1000 }],

