我使用listCachedData[]
二维数组存放获取的数据,然后在uni-list中使用子组件渲染。通过点击tabList,而分别显示数组listCachedData[0][]
和listCachedData[1][]
的数据。在小程序端目前暂时没看到问题,可以正常显示。但是在真机调试中出现了子组件数据错乱的情况。也就是说一个uni-list-item
中子组件的部分数据会显示成另一个uni-list-item中同位置子组件的数据。但是uni-list-item
中非子组件的数据可以正常切换。
我所有页面都是vue页面,没有nvue页面。
tab项第一次点击切换的时候,是可以正常获取数据并显示的。点击第二次之后,就开始数据混乱了。在小程序端可以随意点击切换,都可以正常显示。
这是什么原因?如何改善?
<uni-list style="width: 100%;" v-if="sort_index==0&&listCachedData[0].length>0">
<uni-list-item v-for="(item,index) in listCachedData[0]" style="width: 100%;" :key="index" v-slot:body>
{{sort_index+" "+item.title}}
<self-item type="itemtype" :item_data="item" style="width: 100%;height:100%;" v-if="sort_index==0"></self-item>
</uni-list-item>
</uni-list>
<uni-list style="width: 100%;" v-if="sort_index==1&&listCachedData[1].length>0">
<uni-list-item v-for="(item,index) in listCachedData[1]" style="width: 100%;" :key="index" v-slot:body>
{{sort_index+" "+item.title}}
<self-item type="itemtype" :item_data="item" style="width: 100%;height:100%;"></self-item v-if="sort_index==1">
</uni-list-item>
</uni-list>
1 个回复
k***@163.com (作者)
似乎解决了。在子组件新增一个单独的key值,以_id为key值。
昨天是
:key=xxx
,没效果。可能是没有唯一key的原因。不过我现在的key写法是
key=item._id
,并没有冒号。这也可以?真奇怪