太长,懒得写
- 发布:2020-09-10 17:37
- 更新:2021-10-30 16:45
- 阅读:1655
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.11
手机系统: Android
手机系统版本号: Android 9.0
手机厂商: 华为
手机机型: 华为MRD-AL00
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
直接写个list组件,添加loadmore方法,内容溢出,出现滚动,一旦滚动结束后都会触发loadmore
直接写个list组件,添加loadmore方法,内容溢出,出现滚动,一旦滚动结束后都会触发loadmore
预期结果:
到底触发loadmore,其他情况不触发loadmore
到底触发loadmore,其他情况不触发loadmore
实际结果:
滚动后就会触发,之前版本没这个毛病
滚动后就会触发,之前版本没这个毛病
bug描述:
按道理,list滚动到底部会触发loadmore是没有问题的,但是为什么我滚到顶部他也会触发loadmore这个方法?
7 个回复
1***@qq.com (作者) - hahaha
经测试IOS正常,安卓机都有问题,一滚动就触发loadmore
DCloud_Android_ST
vue还是 nvue?请提供一下测试demo
1***@qq.com (作者)
nvue
2020-09-10 20:26
1***@qq.com (作者)
你看看,在IOS端是正常的,但是安卓一滚动就触发
2020-09-10 20:29
1***@qq.com (作者)
<template>
<view class="index">
<list class="index-box" ref='list' @loadmore="onScroll">
<cell>
<view class="num-item" v-for="num in 20">
<text>{{num}}</text>
</view>
</cell>
</list>
</view>
</template>
<script>
const app = getApp().globalData;
export default {
data(){
return{
lists:[]
}
},
methods:{
onScroll(){
console.log('触发@loadmore')
setTimeout(()=>{
this.$refs["list"].resetLoadmore();
},1000)
}
}
}
</script>
<style scoped lang="scss">
.num-item{
width: 750rpx;
height: 100rpx;
background-color: pink;
margin-top: 10rpx;
display: flex;
align-items: center;
justify-content: center;
}
.index-box{
width: 750rpx;
height: 500rpx;
// flex: 1;
}
</style>
2020-09-10 20:31
DCloud_Android_ST
回复 1***@qq.com: 写法有问题
2020-09-15 15:01
DCloud_Android_ST
你这应该是写法问题。list应用去创建多个cell 而不是你这样cell放了一个长列表 这样肯定会一直触发loadmore. 你说之前版本没问题指的是哪个版本?我这边看了下代码这种写法应该一直有这样的问题
1***@qq.com (作者)
那cell只能放什么?是因为高度问题还是for循环问题,万一我数据是多维的咋整?
2020-09-15 16:05
1***@qq.com (作者)
而且,我之前一直用IOS调试,这毛病一直都没有出现
2020-09-15 16:06
1***@qq.com (作者)
对了,我那个列表是个组件来的,但是LIST只能放cell之类的固定组件,放其他都不显示,那我怎么组件化,是不是把组件名字改成cell就可以了?
2020-09-15 16:07
DCloud_Android_ST
回复 1***@qq.com: 那你这样写法为什么要用list? 用个scroll-view套一下不行就行了。仔细看下list的逻辑,要的是cell. 你这写法的list始终只有一个item所以滑动就会触发loadmore。不要拿IOS对比 loadmore的判断逻辑都不一样
2020-09-15 18:33
林依_Love
回复 1***@qq.com: 我的问题解决了,还是自己写的问题
2021-10-30 17:04
5***@qq.com
list refresh, ios 下,只要滚动页面,就触发。。。
风云21
循环放到cell里就好了
5***@qq.com
这不是废话吗,谁不是放在cell里?
2021-08-23 10:06
林依_Love
遇到同样的问题,ios正常,设置this.$refs["wineList"].resetLoadmore()后,只要滑动就触发loadmore方法,不设置this.$refs["wineList"].resetLoadmore(),切换tab,只有第一个能加载更多,其他的loadmore只执行一次,就不在执行loadmore方法了
林依_Love
请问问题解决了吗?怎么解决的,比较急,谢谢
罒
可以通过appear事件去模拟loadmore
2021-11-01 09:18