uni-app Skyline scroll-view worklet:onscrollupdate 问题

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app Skyline scroll-view worklet:onscrollupdate 问题

示例代码:

<scroll-view type="custom" :scroll-y="true" worklet:onscrollupdate="handleScrollUpdate">  
</scroll-view>

操作步骤:

  • worklet:onscrollupdate=“handleScrollUpdate”

预期结果:

  • 编译成可调用的函数,worklet:onscrollupdate="{{x}}",即worklet:onscrollupdate正常监听。

实际结果:

  • 原样编译worklet:onscrollupdate=“handleScrollUpdate”,导致没监听到。

bug描述:

Skyline scroll-view worklet:onscrollupdate 方法名直接编译导致无法调用函数

Image


6 回复

setup() {
const handleScrollUpdate = (evt) => {
‘worklet’;
console.log(‘handleScrollUpdate’)
}
return {
handleScrollUpdate
}
}


暂不支持 compositionApi,可将其抽离成组件;组件options+页面compositionApi,我目前都是这么处理的

回复 7***@qq.com: 社区搜一下“skyline”关键词,很早之前我提过。忘记几楼有demo

别等组合式了,一心去搞app了,透传也不搞了

uni-app 中使用 Skyline 引擎时,scroll-view 组件的 worklet:onscrollupdate 事件可能会遇到一些问题。worklet:onscrollupdate 是用于监听滚动事件的回调函数,但在实际使用中,可能会遇到以下问题:

1. 事件未触发

  • 原因worklet:onscrollupdate 事件可能在某些情况下未正确触发,尤其是在 Skyline 引擎中可能存在兼容性问题。
  • 解决方案:确保 scroll-view 组件的属性和事件绑定正确。可以尝试使用 [@scroll](/user/scroll) 事件作为替代方案,看看是否能正常触发。
<scroll-view [@scroll](/user/scroll)="handleScroll">
  <!-- 内容 -->
</scroll-view>
methods: {
  handleScroll(event) {
    console.log('Scroll position:', event.detail.scrollTop);
  }
}

2. 事件触发频率过高

  • 原因worklet:onscrollupdate 事件可能会在滚动过程中频繁触发,导致性能问题。
  • 解决方案:可以通过防抖(debounce)或节流(throttle)来控制事件的触发频率。
let lastScrollTime = 0;
const throttleDelay = 100; // 100ms

methods: {
  handleScroll(event) {
    const now = Date.now();
    if (now - lastScrollTime >= throttleDelay) {
      lastScrollTime = now;
      console.log('Scroll position:', event.detail.scrollTop);
    }
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!