|
我想(xiang)要(yao)實現的效果是(shi):可以上拉刷(shua)新(xin),下(xia)拉加(jia)載,分(fen)別點擊(ji)tab都還能夠請求服務器(qi)。我想(xiang)的最(zui)好(hao)的方法是(shi)把日期和月(yue)(yue)份(fen)這(zhe)2個抽(chou)離(li)出來做成一個方法,然后上拉刷(shua)新(xin),下(xia)拉加(jia)載,點擊(ji)tab分(fen)別調用日期和月(yue)(yue)份(fen)方法即(ji)可。我嘗(chang)試百度/google,見到(dao)最(zui)多(duo)的鏈式寫法,以獲取用戶(hu)數據舉(ju)例:
-
//這里的操作都是舉例說明。
-
wxLogin()
-
.then(=>res{
-
console.log(res.code)
-
return wxRequest.getUserOpenId(url, params)//請求獲取用戶ID
-
})
-
.then(=>res{
-
console.log(res.openId)
-
return wxRequest.getUserPhone());//請求獲取用戶手機
-
})
-
.catch()
在(zai)index.js頁面(mian) ; getUserOpenId()和getUserPhone()都是封裝在(zai)另外一個(ge)js里面(mian)的(de)。或(huo)者(zhe)是直(zhi)接getUserMessage().then(res=>).catch();這樣直(zhi)接獲取用戶(hu)數據了。
-
wxRequest.getUserMessage()
-
.then(=>res{
-
console.log(res.code);
-
})
-
.catch()
當(dang)然我這樣(yang)舉例還(huan)是不(bu)能說明(ming)存在(zai)什么問(wen)題(ti),那(nei)(nei)(nei)么如果我要像上(shang)面圖那(nei)(nei)(nei)樣(yang)獲取日(ri)期數(shu)據(ju),月(yue)份數(shu)據(ju)怎么辦呢(ni)?難道按(an)照第一個(ge)那(nei)(nei)(nei)樣(yang)寫(xie),上(shang)拉(la)(la)加載那(nei)(nei)(nei)里(li)寫(xie)一堆(dui),下拉(la)(la)刷新那(nei)(nei)(nei)里(li)一堆(dui),切(qie)換tab也寫(xie)一堆(dui)重復的(de)代(dai)碼?還(huan)是說我管你是上(shang)拉(la)(la)刷新,還(huan)是下拉(la)(la)加載好,我直接通過一個(ge)接口在(zai)一起獲取數(shu)據(ju)?所以我通過百度/google到他們寫(xie)的(de)還(huan)不(bu)夠完善(不(bu)是寫(xie)的(de)不(bu)好哈) 我的(de)寫(xie)法(fa):
-
//我只是抽取我部分代碼來展示
-
Page({
-
data:{
-
-
},
-
onLoad: function () {//生命周期
-
this.readUserMesage();
-
},
-
readUserMesage(): function () {//獲取用戶信息,并獲取按日期的數據
-
this.showLoading();
-
let parameters = 'user?ptId=aaaaaaaaaaaaaa';
-
api.getRequest({
-
parameters: parameters,
-
}).then(res => {
-
return this.readDayData(); //獲取日期信息
-
}).catch(error => {
-
this.hideLoading();
-
});
-
},
-
readMonthData() {//把月份單獨抽取出來
-
var url = 'dailypay?xxxxx=aaaa&yyy=bbbbbb';
-
var parameters = { parameters: url }
-
return api.getRequest(parameters)//我這里是封裝請求服務器的,注意我加了return
-
.then(res => {
-
//這里就可以獲取到返回的res的集合數據
-
}).catch(error => {
-
console.log(JSON.stringify(error));
-
this.hideLoading();
-
});
-
},
-
readDayData() {//把日期單獨抽取出來
-
var url = 'dailypay?xxxxx=aaaa&yyy=bbbbbb';
-
var parameters = { parameters: url }
-
return api.getRequest(parameters)//我這里是封裝請求服務器的,注意我加了return
-
.then(res => {
-
//這里就可以獲取到返回的res的集合數據
-
}).catch(error => {
-
this.hideLoading();
-
});
-
},
-
onPullDownRefresh() {//下拉刷新
-
if (this.data.currentIndex == 0) {//如果當前是在日期
-
this.readDayData();
-
} else {//如果當前是在月份
-
this.readMonthData();
-
}
-
},
-
onReachBottom() {//上拉加載
-
if (this.data.currentIndex == 0) {
-
this.readDayData();
-
} else {
-
this.readMonthData();
-
}
-
},
-
)}
好了(le),我的方法介(jie)紹完成了(le)。這(zhe)樣(yang)做就可以減少代碼量(liang)了(le)。
|