钉钉小程序 - - - - - overflow无效?
钉钉小程序 - - - - - overflow无效?
- 问题描述:
- 代码示例:
- 定位原因:
- 解决办法:
问题描述:
钉钉原生小程序,使用overflow:auto
时,没有产生预期效果。
代码示例:
UI组件库 : Ding Design
Ding Design 是由钉钉设计团队、产品团队和终端技术团队共同打造的前端组件项目,目的是为了帮助开发者提高开发效率、提升产品体验。
modal是上述UI库的组件
期望效果为:
- 自定义一个关闭弹窗按钮(因为该弹窗不支持点击蒙层股关闭)
- 内容为可滚动的列表
代码如下:
<modal show="{{show}}" buttonList='null'>
<view slot="modal-content" class="dtmini-modal-slot relative">
<view class="absolute close" catchTap="triggerCancel"> x</view>
<view class="scroll-wrap">
<view a:for="{{ 20 }}">
{{item}}
</view>
</view>
</view>
</modal>
.scroll-wrap {
height: 200rpx;
overflow: auto;
}
.scroll-wrap view{
height: 30rpx;
}
定位原因:
刚开始以为是这块代码写法有问题,重写之后依然无效。
- 在其他页面内使用
overflow: auto;
依然好用。 - 怀疑是外层有
position
或者display
,对overflow
有了影响,但是重写之后依然无效。 - 再尝试把
.scroll-wrap
对应的标签换成scroll-view
依然无效。 - 最后用排除法,在当前页面空白区域再次尝试使用
overflow: auto;
(不再modal里使用),发现能够正常滚动
SO,那就是
Ding Design
组件库的modal
有问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!
解决办法:
方案一:
自己手写一个modal,不使用UI库组件
方案二:
组件库提供了对应的属性 disableScroll
代码改成:
<modal show="{{show}}" buttonList='null' disableScroll='{{false}}'>
</modal>
至此问题完美解决
需要狠狠吐槽钉钉团队相关的项目。
- 钉钉小程序缓存太严重,使用
onCheckForUpdate
检测是否有新版本,根本就没有用!!!!! - 缓存延迟,导致验证真机效果太费时间
- 对于头部自定义兼容性不好!!!!
- 同样API写法,微信小程序完美展示,钉钉就是修改不了
- 自己团队出的UI组件,坑也是多的没谱!!!