最近小程序改版想嘗試下taro,其中的一些坑也分享一下
業務場景:
設計稿如下,上面是一個圖片列表我們被想用scroll-view包裹在最外層,下面是個tabbar,由於其他的一些業務需求這個tabbar是我們自定義,這個時候就遇到一個問題。
小程序中的scroll-view需要給固定高度,但是我們不能寫100%
最簡單的公式
scroll-view = 頁面可用高度 - tabbar高度
關於獲取組件的高度,我們很自然的想到wx.createSelectorQuery(),taro中也封裝了一樣的方法就叫Taro.createSelectorQuery()
但是用這個方法之後發現不好使,獲取不到節點信息
但是文檔裏命名寫的是這麼用的呀,奇怪!
找了好久終於在taro官方issues下面找到了答案 鏈接
createSelectorQuery
只能選擇內置組件 ?黑人問號臉 你怎麼不早說啊!心裏一萬匹草泥馬奔過 但是罵歸罵需求還得寫呀,官方說自定義組件需要把this.$scope穿進去,而且自定義組件只能在該組件中才能獲取到節點信息,所以我們需要在組件外得到自定義組件中的節點信息的話需要放入redux中。
這樣做大部分情況下是沒毛病了,正當我開心的時候,taro又餵了我一口屎
我想獲取這個類名叫.m-clfy的節點信息,componentDidMount中的代碼是一樣的,render裏面這樣寫就不行,那我們試試經過判斷讓這個scroll-view在任何情況下都顯示
這樣就可以正常獲取到.m-clfy的節點信息了,但是我們的業務邏輯還是需要啊,所以最後只能用類名來控制.m-clfy這個scroll-view的顯示了