如图所示,下拉页面触发刷新,刷新的过程连带一项任务刷新,但是报错未定义“forEach”,我该怎么修改?
js:
onPullDownRefresh: function () {
this.getGoodsList()
},
getGoodsList:function(e){
wx.showLoading({
title: '刷新数据中...',
})
db.collection('Orders').where({
qqaccount: this.data.fuzhi[0].qqaccount
}).get({
success:res=>{
let fuzhi = res.data
this.setData({
fuzhi:fuzhi
})
wx.stopPullDownRefresh()
},
complete:()=>{
wx.hideLoading()
}
})
this.transfrom()
},
//校验经验,根据 当前经验 判断显示当前对应的 等级 及 等级图标
transfrom(fuzhi){
fuzhi.forEach(element => {
if (element.experience <= 456){
element.level = '列兵1'
element.pic = 'url'
}else if (element.experience <= 8026911){
element.level = '大校 1'
element.pic = 'url'
}else if (element.experience <= 8481771){
element.level = '大校 2'
element.pic = 'url'
}
}
这个不是写成功回调里的吗?
let fuzhi = this.transfrom(res.data)
this.setData({
fuzhi:fuzhi
})
wx.stopPullDownRefresh()
调用transform方法时没有传值,可以指定形参的默认值
设置默认值后:
如果使用方法传参,参数会替换默认值;如果使用方法不传参,参数会使用默认值,这样就避免报错了
如果把this.transform写在success回调里,直接在()内将fuzhi传过去不行嘛?
2. 打印下this.data.fuzhi的值
transfrom(fuzhi = []){},补充一句:调用方法不传值和不写是一样效果的