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,这样才算大功告成了。

 

posted @ 2020-08-04 15:33  那一片蓝海  阅读(2008)  评论(1编辑  收藏  举报