背景: 最近学习微信小程序, 从云后端取出数据库无法给集合赋值..能从数据库取到值,能打印,就是无法赋值给dataList集合
1.错误案例(如果你参考了微信小程序开发api文档(云开发),那么就入坑了)
onLoad(){
console.log("=======")
db.collection("test").limit(10).get({
success: function(e){
console.log("名称:"+ e.data)
this.setData({dataList: e.data})
}
})
},
2.正确案例
onLoad(){
console.log("=======")
db.collection("test").limit(10).get({
success:e=>{
console.log("名称:"+ e.data)
this.setData({dataList: e.data})
}
})
},
总结: 其实你只要在小程序中debugger一下 ,看一下 "this"这个对象就知道了, es6中 "=>"叫箭头函数,箭头函数里没有this对象,所以不会覆盖小程序this对象,, 而非箭头函数中this是函数本身..这些不是关键的.关键是小程序里的这个错误写法不报错,不显示正确.让我头疼很长时间...