微信小程式wx.request請求回來的資料沒有及時顯示到頁面上
阿新 • • 發佈:2019-02-14
出問題的場景
//出問題的程式碼
Page({
data: {
swiper: {//頂部輪播
indicatorDots:true,
autoplay:true,
interval:5000,
duration:1000,
imgUrls:[
"http://preview.quanjing.com/top014/top-663618.jpg",
"http://preview.quanjing.com/top019/top-747622.jpg"
]
},
matchsFirst:[//通欄上面的賽事 這部分資料是要顯示在頁面上的
],
matchsSecond:[//通欄的賽事 這部分資料是要顯示在頁面上的
],
matchsLast:[//通欄下面的賽事 這部分資料是要顯示在頁面上的
]
}
....省略不相干程式碼
);
onLoad: function () {
var that = this;
wx.request({
url:app.globalData.url.api.home,
success: function(res) {
var matchsFirst = xxx;
var matchsSecond= xxx;
var matchsLast= xxx;
//這樣直接賦值並不會把資料渲染到頁面上的 不過 0.9版本的時候這樣做是可以的
that.data.matchsFirst=matchsFirst;
that.data.matchsSecond=matchsSecond;
that.data.matchsLast=matchsLast;
}});
};
解決辦法
//樣這種方式賦值 坑了我一個上午
that.setData({
matchsFirst:matchsFirst,
matchsSecond:matchsSecond,
matchsLast:matchsLast
});
Page.prototype.setData()
setData 函式用於將資料從邏輯層傳送到檢視層,同時改變對應的 this.data 的值。注意:
直接修改 this.data 無效,無法改變頁面的狀態,還會造成資料不一致。
單次設定的資料不能超過1024kB,請儘量避免一次設定過多的資料。