1***@qq.com
1***@qq.com
  • 发布:2020-09-10 17:37
  • 更新:2021-10-30 16:45
  • 阅读:1655

【报Bug】nvue中list组件的loadmore方法一旦滚动就会触发

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.11

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 华为

手机机型: 华为MRD-AL00

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

太长,懒得写

操作步骤:

直接写个list组件,添加loadmore方法,内容溢出,出现滚动,一旦滚动结束后都会触发loadmore

预期结果:

到底触发loadmore,其他情况不触发loadmore

实际结果:

滚动后就会触发,之前版本没这个毛病

bug描述:

按道理,list滚动到底部会触发loadmore是没有问题的,但是为什么我滚到顶部他也会触发loadmore这个方法?

2020-09-10 17:37 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者) - hahaha

经测试IOS正常,安卓机都有问题,一滚动就触发loadmore

DCloud_Android_ST

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

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

5***@qq.com

list refresh, ios 下,只要滚动页面,就触发。。。

风云21

风云21

循环放到cell里就好了

  • 5***@qq.com

    这不是废话吗,谁不是放在cell里?

    2021-08-23 10:06

林依_Love

林依_Love

遇到同样的问题,ios正常,设置this.$refs["wineList"].resetLoadmore()后,只要滑动就触发loadmore方法,不设置this.$refs["wineList"].resetLoadmore(),切换tab,只有第一个能加载更多,其他的loadmore只执行一次,就不在执行loadmore方法了

林依_Love

林依_Love

请问问题解决了吗?怎么解决的,比较急,谢谢

  • 可以通过appear事件去模拟loadmore

    2021-11-01 09:18

该问题目前已经被锁定, 无法添加新回复