8***@qq.com
8***@qq.com
  • 发布:2023-11-10 15:04
  • 更新:2023-11-13 18:19
  • 阅读:535

【报Bug】vue3 script setup renderjs 无法调用 ownerInstance.callMethod 的方法,没有任何提示。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11, version 22H2

HBuilderX类型: 正式

HBuilderX版本号: 3.95

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 11ultra

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址:

示例代码:
<template>  
    <view class="" :prop="data" :change:prop="example.bindAction">  
        这是一个测试用例,给Dcloud官方:{{data}}  
        <button @click="doPlus">点击按钮</button>  
    </view>  
</template>  

<script lang="renderjs" module="example">  
export default {  
    data() {  
        return {  
            fucker: null  
        };  
    },  
    methods: {  
        bindAction(newVal, oldVal, ownerInstance, instance) {  
            console.log('这里数据变更了', newVal);  
            ownerInstance.callMethod('chatWithRenderjs', 500 - 250);  
            this.$ownerInstance.callMethod('chatWithRenderjs',500-250);  
        }  
    }  
};  
</script>  
<script setup>  
import {} from 'vue';  

import {} from '@dcloudio/uni-app';  

import {} from 'vuex';  
let data = $ref(250);  

function doPlus() {  
    data++;  
}  

function chatWithRenderjs(nomb) {  
    console.log('这里通信也成功啦', nomb);  
}  
defineExpose({  
    chatWithRenderjs  
});  
</script>  

<style scoped>  

</style>

操作步骤:

初始化时/点击按钮都会触发bindAction方法,从而调用 chatWithRenderjs 方法,控制台打印 对应log日志

预期结果:

调用方法失败 无响应无报错/ 报错

实际结果:

但是执行到
ownerInstance.callMethod('chatWithRenderjs', 500 - 250);程序无响应无报错,换为this.$ownerInstance.callMethod('chatWithRenderjs',500-250);则会报错 TypeError: Cannot read properties of undefined (reading 'callMethod') at uni-app-view.umd.js:1

bug描述:

uniapp 安卓端,在使用renderjs 通信过程中 想要调用逻辑层方法,调用失败。我用的是script setup语法糖。 在社区里已经看到很多帖子报这个BUG 跨度近2年 仍然没有解决这个问题,是无法解决还是压根没有重视, 我很想听下官方工作人员的回复,这个例子很简单,复现问题很容易。

2023-11-10 15:04 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者) - helloworld

求解答,希望官方工作人员能够重视这个问题,现在 setup 语法糖应该是非常主流的代码方式了,如果无法正常接洽 renderjs,那开发体验就太差了!!!

8***@qq.com

8***@qq.com (作者) - helloworld

顶一顶,希望能被看到。

8***@qq.com

8***@qq.com (作者) - helloworld

BUG 能够百分百复现希望 能够得到官方的重视。

YUANRJ

YUANRJ

renderjs 不支持 setup,可改用 Options API。

  • 8***@qq.com (作者)

    是否考虑后续 使得renderjs 能够兼容setup 写法呢? 是技术层面不可行嘛? 如果确定了 后续不再升级维护该部分,建议在文档中明确标明不支持setup 语法糖用法。

    2023-11-14 13:57

  • YUANRJ

    回复 8***@qq.com: 暂无计划支持,后续会补充到文档。另外更推荐使用 uni-app x,不存在通信问题。

    2023-11-14 14:43

要回复问题请先登录注册