問題描述
技術: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,這樣才算大功告成了。