如何解決小程序中的多態類的列表數據懶加載


什么的多態類:在小程序中,尤其是商城中一個頁面下會有多個多態列表,這些列表都需要處理懶加載的情況:

類似於這樣

可以大致算一算。一級導航欄有四個,二級有 3+1個篩選+2個高/低的價格排序,篩選會篩選出前面五個的條件商品。也就是每一個一級導航欄下都有10個列表數據。也就是說這個頁面下4*10=40個不同情況的列表數據,這時候處理懶加載是不是感覺炒蛋。

小程序的觸底事件,一個頁面只有一個,這里先要區分怎么樣才能夠滾到底 加載的是對呀情況下的的商品列表數據呢:

一級導航欄:

二級導航欄:

————————————————————————————————————————

判斷當前需要加載哪一塊情況下的列表

 個人也封裝了一個這對於這種情況下的方法:

const requestContorl = (url, data, optStr, targetCont,that,cb)=>{
var Bl = that.data.PriceBl
wx.request({
url: url,
method: "POST",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: data,
success: res => {
targetCont = targetCont.concat(res.data.data.list)
that.setData({
[optStr]: targetCont,
})
if (typeof cb == "function"){
cb()
}
}
}
})
}
頁面使用的話  對於不同情況下的列表懶加載,還需要用不同的pageNum來表示,在初始化還需要讓頁碼數清為1。
var loadMore21 = function (that){
pageNumfushi++
var listb2 = that.data.brandList3.brandListAllShopList   每次需要獲取到當前列表的數據
var url = getApp().globalData.url +‘xxx';
var data = {
pageNum: pageNumfushi,
pageSize: 10,
}
var optStr = "brandList3.brandListAllShopList";  存儲當前列表的 路徑
methods.requestContorl(url, data, optStr, listb2, that)
}
其實不僅僅只是懶加載可以用這個方法,第一次加載數據的時候也可以使用。給到固定的只就行。實際情況還需要根據情況來定,僅供參考

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM