Vant: Collapse 折叠面板 加载数据时 展开面板元素被隐藏

Created on 26 Feb 2019  ·  10Comments  ·  Source: youzan/vant

Describe the bug
Collapse 折叠面板 加载数据时 展开面板元素被隐藏,渲染出来的元素 class为van-collapse-item__wrapper,有行内样式height=0 导致元素被隐藏

Screenshots
3
2
1

Environment

  • Device: PC端
  • Browser: 谷歌
  • Vant Version: 1.6.5

Reproduce
Provide the steps to reproduce and if possible a minimal demo of the problem via jsfiddle.
https://jsfiddle.net/dfarLdko/522/

🐞 bug

All 10 comments

能否贴下代码,看下你的渲染步骤

4
这个是我加载列表的代码,点击折叠面板,请求的是某天的订单信息,如下图:
5
如图,点击函数异步请求接口拿回数据,渲染列表未果.

经测试,此bug在安卓机与PC端出现,需要点击两次后才正常展开面板显示数据;
而苹果手机上显示正常,只需点击一次.
不知道是哪里的错?

按照你的代码写了一个简化的 demo,没复现问题,能否给下 jsfiddle

遇到了同样的问题,组件内部面板内容高度为0;
面板内容并非异步加载,但是是通过复杂计算渲染的;
望尽早改进;
能否贴下获取高度的代码,便于我们改错

我这也有这个问题,在安卓手机上这个组件消失了,其他的都是好的

999
这个是我点击面板时,获取点击元素,然后找到面板内容高度.并手动设为1,就解决此问题了.
888
$event可以获取点击的DOM元素,同时为了避免点击事件冒泡,可以给子元素设置点击事件@click.stop.@VictorWuSH

感谢你@xiongxiaobo提供的解决方案
我的临时解决方案是给当前slot中添加一个必占空间元素,即可解决这个问题
【图1】
F19E966A-1FF4-4BB2-8C2D-EEECF3B882A4

@chenjiahan 当slot中存在的元素(如我图1中的es-template-cell-group组件)的内容和空间都是通过计算渲染而成的话,会导致contentHeight计算为空
【图2】
D59159D9-B720-4E25-ADE1-DCF8D6C8A168

@chenjiahan 望早点解决这个问题

下个版本会针对 contentHeight 获取不到的情况加一个兼容处理,应该能解决这个问题

已在 1.6.11 版本增加兼容处理

Was this page helpful?
0 / 5 - 0 ratings