1***@qq.com
1***@qq.com
  • 发布:2023-12-02 02:15
  • 更新:2024-12-18 19:27
  • 阅读:248

【报Bug】onPageScroll()滚动监听 在特定条件下初次加载失效bug

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.98

浏览器平台: Chrome

浏览器版本: 119.0.6045.200(正式版本) (64 位)

项目创建方式: HBuilderX

操作步骤:

//tabBar页面代码:

<template>  
        <userHomePage></userHomePage>  
</template>

//component组件代码:

<script setup>  
    import { onPageScroll } from '@dcloudio/uni-app'  
    //滚动监听  
    onPageScroll(() => {  
        console.log('onPageScroll');//  
    })  
</script>

预期结果:

预期结果为:初次加载tabBar页面模板中的component组件,onPageScroll()能够直接生效。

实际结果:

初次打开tabBar页面,component组件内容渲染出来,但是该component组件页面的onPageScroll()滚动监听是失效的,需要切换到其他任意页面再回来,onPageScroll()才能够生效

!另外有一个点:
把onPageScroll()写在component组件中,然后再通过tabBar页面引入组件,就可以复现这个bug。
奇怪的是通过uni.navigateTo()跳转到这个component组件是可以直接触发onPageScroll()的。。很奇怪

!!!目前发现一个暂时的解决方案,tabBar页面中添加一个空的onPageScroll(),就能够触发嵌套的component的onPageScroll()。。。

bug描述:

tabBar页面模板中插入component组件,并在该组件内部设置onPageScroll()滚动监听,
初次打开tabBar页面,component组件内容渲染出来,但是该页面的onPageScroll()滚动监听是失效的,
此时切换到其他任意页面再回到tabBar页面,component组件的onPageScroll()滚动监听才会生效。
请官方复现一下。

2023-12-02 02:15 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com - 111

还是大佬的这个临时方案有效,,官方到现在还是没有回复这个bug啊

8***@qq.com

8***@qq.com - 111

目前发现一个暂时的解决方案,tabBar页面中添加一个空的onPageScroll(),就能够触发嵌套的component的onPageScroll()。。。 这条亲测有效,,解决了我的问题...

锦鲤丶接单丶

锦鲤丶接单丶 - 锦鲤丶接单丶18560000860丶10+年开发经验

一直有这个问题,组件中引用生命周期不生效,需要在引用组件的页面也引用一下相同的生命周期函数,不光onPageScroll(),其它的生命周期也一样,你可以试试

要回复问题请先登录注册