js配置
Page({
data: {
goodlist: [],
},
onShow: function () {
// 获取赛事详情数据
let pages = getCurrentPages();
let currentPage = pages[pages.length - 1];
let options = currentPage.options;
let goodid = options.id;
// console.log(goodid)
const db = wx.cloud.database();
db.collection('addlist').where({
_id: goodid, //查询addlist集合中字段_id为goodid的值
})
.get({
success: res => {
this.setData({
goodlist: res.data[0],
})
console.log(res.data[0])
},
fail(err) {
console.log("查询失败", err);
}
})
},
// 把数组存入到缓存中
wx.setStorageSync("goodlist", goodlist);
}
})
上面是可以打印出res.data[0]的
然后想将它写进本地缓存中实现下一步操作
APPdata里面有
storage里面没
参考GPT和自己的思路:
根据您提供的代码,将获取到的数据存入本地缓存的代码应该在success回调函数中,即在setData之后。具体修改如下:
const db = wx.cloud.database();
const that = this;
db.collection('addlist').where({
_id: goodid,
}).get({
success: res => {
that.setData({
goodlist: res.data[0],
})
console.log(res.data[0])
wx.setStorageSync("goodlist", res.data[0]); // 将数据存入本地缓存
},
fail: err => {
console.log("查询失败", err);
}
})
同时,需要注意的是,在存入本地缓存之前,需要将获取到的数据赋值给一个变量,这里使用了that来代替this,避免在异步回调函数中出现this指向问题。