6***@qq.com
6***@qq.com
  • 发布:2022-12-05 11:01
  • 更新:2022-12-06 09:36
  • 阅读:300

【报Bug】renderjs vue3 移动端回调没有响应

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.6.5

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: k40

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template>  
<view @longpress="operationjs.longpress">     
</view>  
</template>  
<script module="operationjs" lang="renderjs">  

    export default {  

        mounted() {},  

        methods: {  

            longpress(event, ownerInstance) {  

                console.log("touchend");  

                ownerInstance.callMethod('getData', 12)  
            },  

        }  
    }  

</script>  

<script setup>  
const getData = (option) => {  

        console.log(option)  

    }  

</script>

操作步骤:

手机上长按操作在renderjs中有打印,回调getData函数没有打印。网页上长按操作在renderjs中有打印,回调getData函数也有打印。

预期结果:

预期回调中有打印。

实际结果:

实际回调中没有打印。

bug描述:

手机上长按操作在renderjs中有打印,回调getData函数没有打印。网页上长按操作在renderjs中有打印,回调getData函数也有打印。

2022-12-05 11:01 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

代码中的 getData 写法,默认是不会暴露在当前组件实例上的。

所以在实例上调用方法 getData 不会成功。

改成选项式API写法,或者使用 defineExpose 将 getData 暴露在实例上。

6***@qq.com

6***@qq.com (作者)

网页端是可以的,手机上仍然拿不到参数。

    const getData = (option) => {  
        console.log("option")  
        console.log(option)  
    }  

    defineExpose({  
      getData  
    })  

<script module="operationjs" lang="renderjs">  
    export default {  
        created() {  
        },  
        methods: {  
            longpress(event, ownerInstance) {  
                console.log("longpress")  
                ownerInstance.callMethod('getData', 13)  
            },  
        },  

    }  
</script>

该问题目前已经被锁定, 无法添加新回复