vue3版本选中插件在uni-app中报错

vue3版本选中插件在uni-app中报错

示例代码:

"mp-jd": {  
    "appid": "×××××××××××××××××××××",  
    "plugins": {  
        "jxzPlugin": {  
            "version": "1.0.0",  
            "provider": "×××××××"  
        }  
    }  
}

操作步骤:

  • manifest.json引入plugins vue2正常显示 vue3就会报错

预期结果:

  • 不报错 正常显示

实际结果:

  • 报错 导致我input组件用不了

bug描述:

  • 选择vue2版本引入小程序原生插件编译就不会报错 vue3的话报错
信息类别 信息内容
产品分类 uniapp/小程序/京东
PC开发环境 Windows
OS版本 win11
HBuilderX类型 正式
HBuilderX版本 4.75
第三方工具版本 2.52
基础库版本 2.52
项目创建方式 HBuilderX

image


更多关于vue3版本选中插件在uni-app中报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

65 回复

具体报错代码


更多关于vue3版本选中插件在uni-app中报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


有官方人员回复一下吗

可以提供一下一个测试项目吗?

需要运行到京东开发者工具

回复 DCloud_UNI_yuhe: 我上传了两个附件麻烦看一下

回复 t***@163.com: 我这里没有办法运行你的项目,但是看起来打包之后产物中app.json是一致的,你运行之后 app.json 产物是一致的吗?

回复 DCloud_UNI_yuhe: 我看了一下 是一致的

回复 DCloud_UNI_yuhe: 我上传的两个zip是通过最新版本hbuilderX左上角新建项目生成的 不同的区别就是选择的vue版本号不一样

回复 DCloud_UNI_yuhe: 咋样了 卡项目进度了老哥

测试1是vue2版本的 测试2是vue3版本的 代码基本一致

vue3 编译产物和 vue2 的不一样,有一些属性事件是后附加的,而京东内部读取属性是从原型链上读的导致读不到,所以重写了 Object.getPropertyOf

京东那边使用的trao+vue3 使用这个插件是没问题的 而且这个插件是必须要接入的 除了更换vue版本有其他解决办法吗

有解决办法吗

回复 t***@163.com: 在的,下面有回答,试试看

回复 t***@163.com: 试过了吗?

回复 DCloud_UNI_LXH: 没看到 不好意思 我现在试下

替换至该目录,然后重新运行到京东小程序
HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-jd/dist/uni.mp.esm.js

可以了 感谢 目前临时方案就这样改是吗

回复 t***@163.com: 是的,在下一个 alpha 会带上

回复 DCloud_UNI_LXH: 更换了之后发现了一个新的bug v-for循环里面使用组件的时候 组件里面写点击事件传的数据是列表的最后一条数据 我上传个demo 里面可以直接复现

有复现吗

只要页面使用两个以上同一个组件就会出错

回复 t***@163.com: 确实,在修

截图有说明


替换至该目录,然后重新运行到京东小程序
HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-jd/dist/uni.mp.esm.js
HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-jd/dist/vue.runtime.esm.js

HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-jd/dist/vue.runtime.esm.js 没有这个

在线找bug text标签再包裹一个text标签的话 里面的那个text标签的点击事件不会生效

麻烦看下

回复 t***@163.com: 不好意思,是这个路径:HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist 下

回复 t***@163.com: text 的问题怎么写的?事件是绑定在内部还是外层上的?

回复 DCloud_UNI_LXH: <text><text @click=“onClick”></text></text> 这个onClick点击不生效

回复 t***@163.com: 这应该是京东小程序的限制了。测试 view 嵌套是可以触发事件的

回复 DCloud_UNI_LXH: 更换了js之后页面的input使用不了 截图上传附件了

回复 DCloud_UNI_LXH: 很奇怪 我方法名称定义onInput的话就能正常打印 改成onInput1的话就有截图的那个警告 导致赋值不了 麻烦看下

回复 DCloud_UNI_LXH: 更换js之前 嵌套text点击是没问题的 这个问题我目前换成span标签就好了

回复 t***@163.com: 输入框的这个问题 我换成8.6号你们提供的那个js之后就没问题

回复 t***@163.com: 我这里改的有问题。稍等哈。但是 text 嵌套不触发点击我使用原生的项目试过了,也是一样的

回复 DCloud_UNI_LXH: 嗯嗯 这个小问题 主要是input那个 流程都进行不下去了

回复 t***@163.com: 嗯嗯

onInput事件触发不了

我没有测试京东小程序插件的环境,还是这两个文件,你替换试试看

换完重新编译 控制台报错: Page is not constructed because it is not found. 然后白屏

具体报错信息上传附件了

具体报错截图


我之前本地测试没啥问题,我再看一下

是使用插件的时候jd的重写配置

回复 DCloud_UNI_LXH: 这个又回到了2025-08-06的那个问题上面去了 也是因这个问题为你那边修改过之后导致后续也有点问题 上面都有记录可以参考一下

无法从运行时兼容了,改了下模板编译

将 vue3 的插件卸载重装
将附件内容替换至 HBuilderX 根目录/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-jd/dist
重新运行试试看

运行的时候报错了

你 hx 是什么版本的?alpha 吗?

回复 DCloud_UNI_LXH: 不是 最新版本的

回复 t***@163.com: 我更新了上面回答中的附件,重新下载替换试试看

回复 DCloud_UNI_LXH: 好

回复 DCloud_UNI_LXH: 更新了v4.76版本之后运行报之前错误了 我看更新文档是有说修复这个bug的

回复 t***@163.com: 4.76 没有修复,下一个 alpha 修复,还没发

回复 DCloud_UNI_LXH: 收到

回复 DCloud_UNI_LXH: 滴滴 发现一个新的bug 如果上传多个plugins 控制台会报错 一个的话显示正常 具体上传附件

看看生成的配置,app.json 是否完整的生成了。这看着像是缺少了东西

编译的看着没问题

那可以试一下原生京东小程序是否会报错

回复 DCloud_UNI_LXH: 我试了 还真是原生的问题 我去那边反馈一下

4.81 alpha 已修复

在 uni-app 的 Vue3 版本中使用小程序原生插件时,由于 Vue3 的响应式系统与 Vue2 存在差异,可能导致插件初始化异常。错误通常出现在插件实例化过程中,因为 Vue3 的 Proxy 代理可能干扰了原生插件的内部逻辑。

解决方案:

  1. 检查插件兼容性:确认该插件是否官方支持 Vue3。部分老旧插件可能仅适配 Vue2。
  2. 调整插件调用时机:在 onReadyonLoad 生命周期中延迟初始化插件,避免响应式代理干扰:
    onReady(() => {
      // 通过 getApp().$scope 访问原生上下文
      const plugin = requirePlugin('jxzPlugin');
    });
    
  3. 降级为 Vue2:若插件明确不兼容 Vue3,可在 manifest.json 中临时切换为 Vue2 模式:
    "vueVersion": "2"
回到顶部