uni-app vue3版本项目新建后使用picker组件报错

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

uni-app vue3版本项目新建后使用picker组件报错

HBuilder 新增一个vue3的项目后使用picker这个组件,选择完成后会报这个错误  

Uncaught TypeError: Cannot redefine property: instance  
at Function.defineProperty (<anonymous>)  
at wrapperH5WxsEvent (uni-h5.es.js:1205)  
at $nne (uni-h5.es.js:1234)  
at HTMLDivElement.invoker (vue.runtime.esm.js:9533)  

使用的是官方给的例子。

![image](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20220427/2bf260969e31ca4844a4a4ec63143b4d.png)

33 回复

遇到一模一样的问题。在 vant 的input组件上点击选中就出这个问题。


我也是碰到这个问题

这不是picker的问题吧。我用elementPlus,点击按钮都是这个,还特意切换到上个版本,发现上个版本没有问题。 坐等新版本更新

3.4.12表示已经修复

已记录此问题后续优化,已加分,感谢您的反馈!

预计下版修复

我去同遇到了,我这个是使用上传不行

希望官方能尽快解决哦,我使用element-plus的el-dialog每次点击事件发生也会有这个报错,但好像其他影响暂时没有

同样的问题,请求解决

目前3.4.9版本并没有解决这个问题。web页面,每次点击个按钮什么的就飘红报错,控制台简直不能看,闹心

同样的问题,等待解决

alpha 3.4.10 已修复

是这个版本吗 3.0.0-alpha-3041020220512001 为啥我会报新的错误?导致页面白屏 Uncaught TypeError: Cannot read properties of undefined (reading ‘$page’) at new ServiceMediaQueryObserver

还是遇见了这个错误

是在什么环境下创建运行的?

并没有解决这个问题啊 正式版3.4.15.20220610 H5下 picker 点击确定 报错:
Uncaught TypeError: Cannot redefine property: instance at Function.defineProperty (<anonymous>) at wrapperH5WxsEvent (uni-h5.es.js:1205:12) at $nne (uni-h5.es.js:1234:14) at HTMLDivElement.invoker (vue.runtime.esm.js:9533:19)

使用正式版 3.4.15.20220610 ,运行到 H5 已经没有这个报错了啊

编辑器版本:3.6.1.20220907-alpha
Vue版本:Vue3
项目创建方式:vue-cli
鼠标滚动时报错


问题修复过,把 vue3 编译插件卸载重装

回复 DCloud_UNI_LXH: vue3编译器卸载了,重新安装,重新运行,还是不行 现在用的是 vue3(3.6.1-2022090720)

回复 Anet: 我测试的就是这个,看看你安装的 vue3 编译器版本是 3.6.1 吗?

回复 DCloud_UNI_LXH: vue3 编译器版本是 3.6.1-2022090720的

回复 Anet: 把我最新新增的附件替换至路径重新运行看看

替换附件至 hx 根目录\plugins\uniapp-cli-vite\node_modules[@dcloudio](/user/dcloudio)\uni-h5\dist

替换之后,重启编辑器,选择内置浏览器运行,还是不行,还是报错了

回复 Anet: 哦哦哦,你是 cli 是吧,不好意思没有看清。那你更新下 cli 版本,或者把附件替换至 项目根目录\node_modules[@dcloudio](/user/dcloudio)\uni-h5\dist

回复 DCloud_UNI_LXH: Uncaught SyntaxError: The requested module ‘/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js’ does not provide an export named ‘ON_NAVIGATION_BAR_CHANGE’ (at uni-h5.es.js:3:772) 替换之后整个页面都不渲染了,还报了这个错误

回复 Anet: 那你把 cli 整体升级到 3.0.0-alpha-3060120220907002 吧

回复 DCloud_UNI_LXH:弱弱得问一句,升级命令是啥?

回复 DCloud_UNI_LXH: 执行 npx @dcloudio/uvm 3.0.0-alpha-3060120220907002 吗?执行不了,报错了

在使用 uni-appVue3 版本时,如果你在项目中使用了 picker 组件并遇到报错,可能是由于以下几个原因导致的。以下是一些常见的解决方案:

1. 确保 picker 组件的正确使用

picker 组件在 uni-app 中的使用方式与原生小程序类似。确保你在 template 中正确使用了 picker 组件,并且绑定了正确的事件和方法。

<template>
  <view>
    <picker mode="selector" :range="options" @change="onPickerChange">
      <view>选择器</view>
    </picker>
  </view>
</template>

<script setup>
import { ref } from 'vue';

const options = ref(['选项1', '选项2', '选项3']);

const onPickerChange = (event) => {
  console.log('选中的值:', event.detail.value);
};
</script>

2. 检查 uni-app 版本

确保你使用的 uni-app 版本支持 Vue3。你可以通过以下命令检查 uni-app 的版本:

npm list @dcloudio/uni-app

如果版本过低,可以尝试更新 uni-app

npm install @dcloudio/uni-app@latest

3. 检查 Vue3 的兼容性

uni-appVue3 版本可能在某些组件或功能上存在兼容性问题。确保你使用的 picker 组件在 Vue3 环境下是兼容的。

4. 检查 picker 组件的 mode 属性

picker 组件的 mode 属性决定了选择器的类型,常见的 modeselectormultiSelectortimedate 等。确保你使用的 mode 是支持的,并且与你的需求匹配。

5. 检查 picker 组件的 range 属性

picker 组件的 range 属性用于指定选择器的选项列表。确保 range 是一个数组,并且数组中的元素是字符串或对象。

6. 检查 picker 组件的 @change 事件

picker 组件的 @change 事件会在用户选择后触发。确保你正确绑定了 @change 事件,并且在事件处理函数中正确处理了 event.detail.value

7. 检查控制台报错信息

如果以上步骤都没有解决问题,建议查看控制台的报错信息,根据报错信息进一步排查问题。常见的报错可能包括:

  • picker 组件未定义
  • range 属性未正确绑定
  • @change 事件未正确绑定

8. 使用 uni.picker API

如果你仍然遇到问题,可以尝试使用 uni.picker API 来代替 picker 组件。uni.picker API 提供了更灵活的选择器功能。

uni.showPicker({
  title: '请选择',
  range: ['选项1', '选项2', '选项3'],
  success: (res) => {
    console.log('选中的值:', res[0]);
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!