uniapp学习与摸索

140 阅读1分钟

前言: 本想找个后端工作继续卷,无奈广州没有太多golang的职位,4个月没工作了实在有点慌,于是饥不择食入职了一家小公司,在这家小公司做全栈...

遇到的问题: 在H5 和 小程序下, form表单里的时间选择器可以正常弹起, 但是在安卓14下的APP无法唤起, 安卓13或以下的app能正常唤起。 原代码如下:

<u-input style="pointer-events: none;" placeholder="请选择生日" v-model="form_base.birthday" :disabled="true"  @click="show_date=true" />
<u-picker
        mode="time"
        :end-year="endYear"
        :default-time="default_time"
        v-model="show_date"
        @confirm="confirmDate"
/>

因为u-input 设置了 :disable="true" 的缘故, 在安卓14下的APP 导致无法唤起时间筛选器, 但是如果去掉 disable=true, 确实可以弹起,但是可以随意修改,这并不符合预期~
分析原因: 主要是因为 u-input 的disable 属性 导致 @click 无法被触发, 一并被禁用了.. 所以无法弹起,因此只需要把 @click 这个操作放在 u-input 的上一层标签 就可以解决!

修改方案如下:

<view  @click="show_date=true" >
	<u-input style="pointer-events: none;" placeholder="请选择生日" v-model="form_base.birthday" :disabled="true" />
</view>
<u-picker
        mode="time"
        :end-year="endYear"
        :default-time="default_time"
        v-model="show_date"
        @confirm="confirmDate"
/>

这样就可以完美解决安卓14版本下 uniapp 无法唤起 uniapp 的picker 组件的问题了~

个人期望: uniapp 是一种很先进的思想, 就是兼容性有待提高, 如果能把兼容性做在底层, 而不是让开发者去写兼容问题, 那更完美了...