网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

說說微信小程序開發的那些坑--setData

發布時間:2018-04-26 12:07 所屬欄目:小程序開發教程

this.setData估計是小程序中最經常用到的一個方法,但是要注意其實他是有限制的,忽略這些限制的話,會導致數據無法更新

setData的反模式:
-- 短時間頻繁進行setData操作
--頁面進入后臺后依然進行setData操作
-- 使用setData一次性設置太多的數據

這里重點說一下第3點,獲取更新列表的時候非常容易觸犯第三點,舉個栗子:
假設Page中data有items的數據,裝著列表的數據

 Page({
  data: {
    items: [],
  }
});

一般情況下,更新items的操作可能如下:

loadItems() {
    //假設通過API獲取到新的列表數據:newItems
    const { items } = this.data;
    this.setData({
    items: items.concat(newItems)
  })
}

如果完整items的數據量不大的時候,這樣做也是可以的,但是列表的數據比較多的時候,后面loadItems時setData的數據就會變很大,超過一定值(1048576)后就會報以下錯誤,然后列表無法再加載更多

數據傳輸長度為 xxxxxx 已經超過最大長度 1048576

若遇到這樣的情況,我的解決方法是

loadItems() {
    //依然假設通過API獲取到新的列表數據:newItems
    const { items } = this.data;
    const start = items.length;
    const updateItems = newItems.reduce((updateItems, item, index) => {
        const key = `items[${start + index}]`;
        updateItems[key] = item; 
        return updateItems;
    }, {})
  //updateItems 示例: { items[0]: 'content', item[1]: 'content', ... }
  this.setData(updateItems)
}

以上是我開發時遇到的坑,歡迎大家探討指導,感謝閱讀



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24115.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×