随便起的名字
随便起的名字
  • 发布:2023-10-25 16:39
  • 更新:2023-10-26 12:26
  • 阅读:325

【报Bug】uniapp编译到微信小程序不能触发自定义hook中监听的onPageScroll钩子函数

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

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

第三方开发者工具版本号: 1.06.2310071darwin-arm64

基础库版本号: 3.1.3

项目创建方式: CLI

CLI版本号: 3.0.0-3081220230817001

操作步骤:
export const usePageScroll = () => {  
  const scrollTop = ref(0);  

  onPageScroll((e) => {  
    scrollTop.value = e.scrollTop;  
  });  

  return { scrollTop };  
};

<template>  
  <view></view>  
</template>  

<script setup lang="ts">  
import { watchEffect } from 'vue';  
import { usePageScroll } from '@/hooks/useScroll';  

const {scrollTop} = useScroll()  

watchEffect(() => {  
    console.log(scrollTop);  
  });  
</script>

预期结果:

输出当前的scrollTop

实际结果:

没有输出

bug描述:

自定义的hooks中,使用onPageScroll钩子函数监听页面滚动不触发

2023-10-25 16:39 负责人:无 分享
已邀请:
YUANRJ

YUANRJ

1***@163.com

1***@163.com - 在技术的道路上缓慢前进

在const scrollTop = usePageScroll(); 前面加个onPageScroll((e) => {}); 试试

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

改造一下

<template>  
    <view class="content">  
        <view class="content" v-for="(item, index) in 50" :key="index">  
            {{ index }} - {{ item }}  
        </view>  
    </view>  
</template>  
<script setup >  
    import { watchEffect } from 'vue';  
    import { usePageScroll } from '@/hooks/useScroll';  
    const scrollTop = usePageScroll();  
    watchEffect(() => {  
        console.log(scrollTop.value);  
    });    
</script>  

//hook  
import {ref} from "vue"  
import {onPageScroll} from '@dcloudio/uni-app'  
export const usePageScroll = () => {  
    const scrollTop = ref(0);  
    onPageScroll((e) => {  
        scrollTop.value = e.scrollTop;  
    });  
    return scrollTop  
};

要回复问题请先登录注册