luweiweiss
luweiweiss
  • 发布:2025-10-24 11:43
  • 更新:2025-10-24 11:45
  • 阅读:25

【报Bug】微信小程序skyline模式下worklet和手势组件功能不正常

分类:uni-app

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

PC开发环境操作系统: Mac

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

第三方开发者工具版本号: Stable 1.06.2504040

基础库版本号: 3.8.10

项目创建方式: CLI

CLI版本号: 3.0.0-4070620250821001

示例代码:
<script>  
const {shared} = wx.worklet;  

const publicVal = shared(0);  
export default {  
    data() {  
        return {  
            msg: 'comb',  
            instanceVal: shared(1),  
        };  
    },  
    methods: {  
        handlePan(evt) {  
            'worklet';  
            console.log('handlePan->', publicVal.value); // 可以访问  

            console.log('handlePan->', this.msg); // ui线程内,无法访问!!  
            console.log('handlePan->', this.instanceVal.value); // ui线程内,无法访问!!  
        },  
    }  
}  
</script>  
<template>  
    <div class="test">  
        <pan-gesture-handler worklet:ongesture="handlePan">  
            <div class="drag">dragb</div>  
        </pan-gesture-handler>  
    </div>  
</template>

操作步骤:

将代码保存为组件文件,运行到微信小程序平台,微信开发者工具需要开启“详情”-“本地设置”-“开启skyline渲染调试”。

预期结果:

handlePan()正常打印出所有值.

实际结果:

访问组件内部状态报错
TypeError: Cannot read property 'value' of undefined

bug描述:

微信平台什么时候能支持一下skyline的worklet啊?目前遇到问题:使用组合式api,手势组件(如<pan-gesture-handler>)相应函数无法访问,因为uniapp会直接将其定义为变量,然后变量再映射函数。如果使用选项式api,倒是可以访问,但是因为响应事件的workleth运行在ui线程,无法访问到vue组件内部data,如果在组件外部使用wx.worklet.shared创建共享变量,那组件重复调用又会数据冲突。有没有什么解决方案呢。

demo在附件里,cli安装方式。
解压后npm install
然后运行微信小程序项目:npm run dev:mp-weixin
微信开发者工具打开后记得开启skyline渲染调试

2025-10-24 11:43 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

发个完整的demo

  • luweiweiss (作者)

    demo更新上去了,在文末

    2025-10-24 15:15

  • luweiweiss (作者)

    demo中拖动滑块,组合式api组件中无法按照预期的执行相应函数,选项式api可以执行,但是无法访问组件data

    2025-10-24 15:16

  • DCloud_UNI_JBB

    回复 luweiweiss: 组合式目前不支持

    2025-10-24 15:35

  • DCloud_UNI_JBB

    回复 DCloud_UNI_JBB: 回复 luweiweiss: 原生微信小程序也不支持访问data中的数据

    2025-10-24 15:37

要回复问题请先登录注册