taro中無法獲取組件節點信息解決辦法

最近小程序改版想嘗試下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的顯示了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章