uni-app 【已解决】picker在app端第一次点击无法弹起,第二次几率性正常
uni-app 【已解决】picker在app端第一次点击无法弹起,第二次几率性正常
操作步骤:
- 运行项目
- 点击下面的tabbar - 业绩
- 点击2021-03 选择日期
预期结果:
正常弹起日期选择器
实际结果:
无法弹起日期选择器
bug描述:
点击pick,较大几率不正常,真机与模拟器,都试过了
相关链接:
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | Mac os Big Sur 11.2.3 |
HBuilderX类型 | Alpha |
HBuilderX版本号 | 3.1.6 |
手机系统 | iOS |
手机系统版本号 | IOS 14 |
手机厂商 | 苹果 |
手机机型 | iphone12 |
页面类型 | vue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app 【已解决】picker在app端第一次点击无法弹起,第二次几率性正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题确认,已加分,后续优化
临时解决办法:manifest.json “nvueStyleCompiler” : “weex”
picker的bug可以复现的问题不止最近几个帖子描述的 毫无征兆的更新之后基础组件的bug. btw 你们4元买2次打包的模式…insane
manifest.json “nvueStyleCompiler” : “weex” 之后,第一次可以正常弹出,第二次及以上,90%会只有遮罩,没有选择器…
回复 5***@qq.com: nvueStyleCompiler是新建工程才有以及手动设置的项目,你的问题可能和他不同,建议详细说明。
回复 握瑾怀瑜: 那你等一下,我上传新文件给你试试
回复 DCloud_UNI_GSQ: 刚刚在写下一个页面,发现picker单列也是这样的问题,请问大约啥时候能更新好,我们好预计一下时间,赶不上就换一种展示方案
回复 握瑾怀瑜: 更新预计今天会发布,你可以先替换一下我提供的这个文件
回复 DCloud_UNI_GSQ: 请问什么时候更新picker的?
回复 握瑾怀瑜: 今天不发布了,推迟几天
回复 DCloud_UNI_GSQ: 试过啦,完全没有问题!
临时解决办法二:
替换附近文件到如下路径:HBuilderX-Alpha.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-app-plus/template/common/__uniapppicker.js
HBuilderX 3.1.7 已修复
收到
回复 握瑾怀瑜: 你好 我想问下你现在使用picker组件还会不会无法弹出下拉框?
回复 吴web: 用上面的文件覆盖一下,目前正常了
回复 握瑾怀瑜: 我替换了上面的文件,但还是会时而无法调取弹窗
回复 吴web: 等发布了再试试,或者你可以上传一份你写的然后给他们测一下
回复 吴web: 3.1.7 已经发布了,你试试
回复 DCloud_UNI_GSQ: 已经更新了最新版本,但上面问题依旧存在
回复 吴web: 出现问题的是什么机型,有什么规律没有?
回复 DCloud_UNI_GSQ: iphone 7plus;软件版本14.2;就是重复点击,时而弹出下拉框,时而就显示遮罩层
回复 吴web: 直接新建一个工程测试能复现吗?
3.1.7版本引入一个新的问题,直接通过xcode导入3.1.7SDK里面的Hbuilder-Hello工程,然后引入liblibCamera.a,然后编译不通过,提示 Showing Recent Messages Undefined symbol: _OBJCCLASS$_MTKView
3.1.7之前版本测试没问题。麻烦大佬解决下。
同问
还是有这个问题 ,ios稳定复现 以前正常的 最近测试发现有这个问题
详细描述一下
这是一个已知的uni-app在iOS端的兼容性问题,主要出现在HBuilderX 3.1.6版本中。问题根源在于picker组件在iOS平台下的首次渲染时机处理异常。
解决方案:
- 升级HBuilderX到3.1.7或更高版本,官方已在该版本中修复此问题
- 若暂时无法升级,可在picker组件上添加
@click
事件强制触发组件更新:
<picker @click="forceUpdate" [@change](/user/change)="onChange">
// picker内容
</picker>
methods: {
forceUpdate() {
this.$forceUpdate()
}
}
- 另一种临时方案是使用
v-if
控制picker的显示:
<picker v-if="showPicker" [@change](/user/change)="onChange">
// picker内容
</picker>
// 在需要显示picker时设置showPicker = true