Page({
data: {
arrday1: [],
},
onLoad: function (e) {
……
Product2.setQuery(andQuery2).find().then(res => {
this.setData({ arrday1: res.data.objects})
console.log("测试数据", res.data.objects)
console.log("测试数据", arrday1)
}, err => { })
}
res.data.objects里面数据是正常的,arrday1里没有数据是怎么回事?
onLoad下写 var that = this; 然后再 that.setData({arrday1:res.data.objects})
大哥解决没有一样的问题
setData函数是异步的呀
这样写,另外需要注意的是setData是异步的
this的指向对吗?比如换成 var that = this; 箭头函数里面的this用that代替 或者尝试着把最外面的数组改成对象接收(空字符接收也可以尝试下)
好的,我再试试。谢谢
Page({
data: {
arrday1: [111,,222],
},
onLoad: function (e) {
……
Product2.setQuery(andQuery2).find().then(res => {
var that = this
that.setData({ arrday1: res.data.objects})
console.log("测试数据", res.data.objects)
console.log("测试数据", res.data.arrday1)
}, err => { })
}
res.data.objects里面数据是正常的,arrday1里没有数据是怎么回事?
这样试了下,arrday1里面还是[111,,222],并没有变成res.data.objects
你不是var that = this;声明在箭头函数的外面
Page({
data: {
arrday1: [111,,222],
},
onLoad: function (e) {
……
var that = this
Product2.setQuery(andQuery2).find().then(res => {
that .setData({ arrday1: res.data.objects})
console.log("测试数据", res.data.objects)
console.log("测试数据", res.data.arrday1)
}, err => { })
}
这样吗?还是不行哟
for (var i = 0; i < res.data.objects.length; i++) {
var x1 = {}
var y1 = " arrday1 [" + i + "]"
x1[y1] = res.data.objects[i]
this.setData(x1)
}
console.log("测试数据", this.data. arrday1 )
console.log("测试数据", this.data.arrday1[0])
如果这样写 this.data. arrday1就正常了,有 res.data.objects的数据了,但是奇怪的是 this.data.arrday1[0]又没有数据是undefined
console.log("测试数据", this.data.arrday1)
我是写的 console.log("测试数据", this.data.arrday1) ,问问题的时候写掉了。 console.log("测试数据", this.data.arrday1) 这个还是没有数据。
打印之前应该先存进变量arrday1里,
this.data.arrday1=res.data.objects,
后面获取时console.log(this.data.arrday1)能拿到