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)
使用的是官方给的例子。

遇到一模一样的问题。在 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: 执行 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]);
}
});