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

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)

更多关于uni-app vue3版本项目新建后使用picker组件报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

33 回复

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

更多关于uni-app vue3版本项目新建后使用picker组件报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我也是碰到这个问题

这不是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-app 的 Vue3 版本时,如果你在项目中使用了 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-app 的 Vue3 版本可能在某些组件或功能上存在兼容性问题。确保你使用的 picker 组件在 Vue3 环境下是兼容的。

4. 检查 picker 组件的 mode 属性

picker 组件的 mode 属性决定了选择器的类型,常见的 mode 有 selector、multiSelector、time、date 等。确保你使用的 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]);
  }
});
回到顶部