小程序上拉加載更多數(shù)據(jù)娇唯,使用scroll-view的bindscrolltolower屬性來處理事件齐遵。這一點官方文檔說的很清楚,可是加上這個屬性后塔插,就出現(xiàn)了兩個問題梗摇。不知是bug呢還是其他。
問題1:處理事件的方法就是不執(zhí)行想许。
問題2:解決完問題1基礎上伶授,存在處理事件的方法執(zhí)行多次的情況。
解決辦法:針對問題1流纹,必須要給scroll-view增加一個height糜烹。
說到height呢,這里微信提供了一個比較人性化的API捧颅,可以寫在.js內(nèi)的onLoad方法內(nèi)獲取景图。如下:
wx.getSystemInfo({
? ? ? ? ? success:function(res) {
? ? ? ? ? ? ? that.setData({ scrollHeight : res.windowHeight
? ? ? ? ? ? ? });
? ? ? ? }
? });
該API可以直接獲取到關(guān)于正在使用設備的所有信息,這時候拿到height了碉哑,可以這么干~類似于style='height: {{scrollHeight}}px; 如果你就想給一個固定的高度什么的~哈哈挚币,這樣顯得好固執(zhí)哦~有現(xiàn)成的api干嘛不用。需要注意的是扣典,把height寫在.wxss布局樣式內(nèi)是無效的妆毕。這個時候就可以調(diào)用bindscrolltolower定義的方法了,針對這一點官方文檔竟然沒說贮尖。笛粘。。
那么接下來問題又來啦湿硝。該方法是調(diào)用了薪前,但是存在調(diào)用多次。不難發(fā)現(xiàn)官方文檔還有一個屬性:lower-threshold关斜,給出的說明是:距底部/右邊多遠時(單位px)示括,觸發(fā) scrolltolower 事件,默認是50 痢畜,Number類型垛膝。那就好辦了鳍侣,我們給它設置小一點。類似于lower-threshold="1" 吼拥,這樣問題2也就可以解決了倚聚。
僅此記錄一下微信小程序scroll-view的一點小問題。2017.12.12