没有把数组值全部替换,是不断将数据追加push进数组。
基础库版本:2.10.3
const updateList = `tabs[${activeTab}].list[${page}]`
const updatePage = `tabs[${activeTab}].page`
this.setData({
[updateList]: res,
[updatePage]: page + 1
})
<!-- 这是自定义组件的内部WXML结构 -->
<scroll-view class="tab-content" enable-back-to-top="{{true}}" scroll-y="{{true}}" scroll-anchoring="{{true}}" lower-threshold="100" bindscrolltolower="updateGameList">
<view class="game-card-wrap" wx:for="{{gameListWrap}}" wx:for-item="gameList" wx:for-index="gameListIdx" wx:key="gameListIdx">
<view class="game-card" hover-class="hover-class" hover-start-time="100" wx:for="{{gameList}}" wx:for-item="game" wx:for-index="gameIdx" wx:key="gid">
</view>
</view>
</scroll-view>
提供一个解决这个问题的思路
解释: scroll-into-view 的元素 如果出现在画面中是不会出现效果的 这样就可以先让他指定为一个位置再去添加内容就不会跑到其他位置了
在做聊天消息列表使用了这个方法,希望能够帮助到大家
有新的进展么
使用uniapp的时候遇到过类似问题,也是加载更多时会自动跳转到列表顶部。
我遇到的问题产生原因是srcoll-view标签有v-if,每次加载数据成功时v-if的false和true的切换会导致srcoll-view重新渲染,滚动条就会回到顶部。
试试去掉v-if的判断看会不会重现
好像 去掉 “enhanced” 这个属性就可以了。 没仔细去研究。
遇到同样的问题,不过我的 html 结构是 tabs 组件里头包裹了一层 scroll-view ,当我 scroll-view 加载更多(list 数据没有使用二维数组),scroll-view 页面会跳到顶部;
经过测试,我修改 tabs 组件,将其 swiper 删除,用 slot (name=tab-content-0) 来代替,加载更多后,就没有出现跳到顶部的问题了
结构见下图(图片标注有误,应该是tabs[0].list 一维数组)
tabs: [{
title: '全部',
orders: [],
pageNumber: 1,
hasMore: false
},
...]
this.setData({
tabs: tabsData
})
请问解决了吗?
我也遇到同样的问题了 楼主 不知道你有没有解决,麻烦指点下,我这边只在ios 上会复现
渲染数组时,我也是采用二维数组,每次setData都只更新本次请求得到的数据。比每次都更新整个数组要高效,所以二维数组是可取的。
tabs: {
list: [],
page: 0
}
没遇到过 我也是 push写的,没有返回顶部。
给你写了个代码片段:
https://developers.weixin.qq.com/s/cqXWHVmL7RfJ
比如:
js:
list: [a,b,c]
addmore() {
const { list } = this.data
//调用接口请求到的第二页数据,假如返回的数组叫results
results.map((item) => {
list.push(item)
})
this.setData({
list
})
}
所以推荐你使用长列表组件。
https://developers.weixin.qq.com/miniprogram/dev/extended/component-plus/recycle-view.html
https://developers.weixin.qq.com/community/develop/doc/0008c46e0a04586d86e7dbd2e5bc00?_at=1584495477343
这里有个去年的相关问题,不过没人解决。。。
但是你今天发的新帖,这个我理解的应该是尾部追加的数据,尾部追加的话应该是直接尾部显示数据不会回到顶部。