当前位置: 首页 > news >正文

u-view 的u-calendar 组件设置默认日期后,多次点击后,就不滚动到默认日期的位置

场景:uniapp开发微信小程序  vue2  uview版本:2.0.36 ;  u-calendar 组件设置默认日期后  我打开弹窗,再关闭弹窗, 重复两次  就不显示默认日期了 

在源码中找到这个位置进行打印值,根据出bug前后的值进行分析,发现,获取dom信息时候,获取的height有时候是整数有时候是小数,但是差的不大,应该是dom精度问题,属于正常情况,但是就是这个导致的问题,如果两次获取的height值不一样,就是正常的,如果两次获取的height值一样,那么就会出现这个bug, 这里要提一下,这个获取的height值是在后代组件中获取的,然后传递给祖先组件,在祖先组件中赋值给scroll-view组件的scroll-top属性。所以有个大胆的猜测,两次获取的值一样然后赋值给scroll-view的scroll-top属性,会不会第二次赋值的时候,因为和上次的值一样,进而缓存了,相当于就没有给scroll-view的scroll-top属性赋值上去,相当于没生效。

故改源码,设置一个布尔值,然后在祖先组件拿到后代组件传递上来的这个值的时候,进行动态加减0.0001几乎不印象值,但是可以实现每次值都不一样,最后测试完,发现果然好了。询问了u-view的社区维护人员,被告知是u-view的bug。也没时间追根溯源了。能解决就行。下面具体修改了源码的位置。

 

/uni_modules/uview-ui/components/u-calendar/u-calendar.vue文件下:

 

以下是源码打印日志的文件路径:/uni_modules/uview-ui/components/u-calendar/month.vue

 上图中this.$uGetRect方法定义文件路径:/uni_modules/uview-ui/libs/mixin/mixin.js

 

http://www.lryc.cn/news/145303.html

相关文章:

  • vue naive ui 按钮绑定按键
  • Viobot基本功能使用及介绍
  • 《PMBOK指南》第七版12大原则和8大绩效域
  • docker 启动命令
  • C++ DAY7
  • Vue2 使用插件 Volar 报错:<template v-for> key should be placed on the <template> tag.
  • 启动线程方法 start ()和 run ()有什么区别
  • Java的全排列模板
  • 读书笔记——《万物有灵》
  • 面试现场表现:展示你的编程能力和沟通技巧
  • 34亿的mysql表如何优雅的扩字段长度兵并归档重建
  • C#_进程单例模式.秒懂Mutex
  • AcWing 5050. 排序 (每日一题)
  • 【TypeScript】proxy 和 Reflect
  • STM32f103入门(5)定时器中断
  • Mybatis查询数据
  • 【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
  • 如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
  • 立创EDA专业版的原理图上器件有一个虚线框
  • JUC并发编程--------基础篇
  • 秒懂算法2
  • 隐秘的角落:Java连接Oracle提示Connection timed out
  • 基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic
  • 科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
  • 2023-08-23力扣每日一题
  • 分发饼干【贪心算法】
  • 为什么网络互联地址设置为30位地址
  • 青少年棒球锦标赛发展·棒球1号位
  • Unity实现UI图片面板滚动播放效果第二弹