只有在页面组件中写了 onPageScroll 方法,组件中的 onPageScroll 方法才生效
只有在页面组件中写了 onPageScroll 方法,组件中的 onPageScroll 方法才生效
测试过的手机:
手机没测,开发工具就过不去了
示例代码:
具体看复现步骤吧
操作步骤:
bugPage.vue
<template>
<bug-component></bug-component>
<view v-for="i in 1000" :key="i">{{ i }}1</view>
</template>
<script setup>
import BugComponent from "./bugComponent.vue";
// onPageScroll
// 后续测试发现,只要页面文件里有 onPageScroll 这个关键词,哪怕是注释,子组件的 onPageScroll 都能生效
</script>
<style lang="less"></style>
bugComponent.vue
<template>
<view class="bugC">
子组件 onPageScroll 返回值:
<view>{{ scroll }}</view>
</view>
</template>
<script setup>
import { onPageScroll } from "@dcloudio/uni-app";
import { ref } from "vue";
const scroll = ref({});
onPageScroll(function (res) {
scroll.value = res;
});
</script>
<style lang="less">
.bugC {
position: fixed;
top: 20%;
left: 20%;
right: 20%;
bottom: 20%;
background: #66ccff;
}
</style>
额外发现
在 hook 里写了 onPageScroll
,引入到页面中,也不行
预期结果:
组件中的 onPageScroll
方法能直接生效
实际结果:
只有在页面组件中写了 onPageScroll
方法,组件中的 onPageScroll
方法才生效
bug描述:
用的 js + vue3,组件是 <script setup>
写法
在某个组件中使用了 onPageScroll
方法,然后发现
如果引用这个组件的「页面.vue」没有 import { onPageScroll } from "@dcloudio/uni-app"
的话
那么组件里的 onPageScroll
就不会生效
| 项目信息 | 值 |
|------------------------|-----------------------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本 | macOS 13.4.1 |
| HBuilderX版本 | 3.94 |
| 手机系统 | 全部 |
| 手机系统版本 | Android 14 |
| 手机厂商 | 华为 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 离线 |
| 项目创建方式 | CLI |
| CLI版本号 | 3.0.0-3081220230817001|
2 回复
解决了吗?
import {
onLoad,
onReady,
onShow,
onPageScroll,
onReachBottom,
onPullDownRefresh
} from ‘@dcloudio/uni-app’
onPageScroll((e)=>{
console.log(e.scrollTop)
})
页面这样写也不生效,不要问我,页面高度6000px,是有滚动条的,而且vue2 的正常能捕获页面事件的。2024-03-26 记录于此。个人微信 lrbfly 如果有,工友解决了,请v我,我感谢您