van-collapse用在van-popup里面默认第一次显示面板内容是关闭状态无法更改
问题描述
技术:vantweapp的ui组件库,小程序开发工具
场景:实现点击按钮弹出popup抽屉,在抽屉里有collapse伸缩面板,默认第一个伸缩item为展开状态,显示第一个伸缩item里的数据
问题:第一次显示时,虽然第一个是展开状态,但由于高度是0,就看不到里面的数据,点击收起再点击展开后才能看到数据。
正确情况:
错误情况
问题原因:
浏览了有赞github上的issue,发现有一个和我相同情况的,原因如下
发现除了popup下collapse的初始化加载有问题外,tab也有类似问题,根本原因在于popup里的组件初始化时会获取当前页面作为style的参数,但是在内部无法获取到导致参数为0等等。
从下图的页面元素中可以看出,数据是有的,但是style样式中给view的height设置了0,导致看不到数据。给height设置为auto能看到数据。
解决方案:
用wx:if无法解决这个问题,至少大部分情况下第一次加载时无法显示数据
最后只能根据问题原因从collapse的源码入手
把height参数在控制台上输出发现值是0。
最终把源码加了一句 假如为0就转换为auto,这样才算大功告成了。
转载请注明出处
个人网站:www.chenlinshan.com