小程序云开发怎么获取云数据库的详情信息并存入本地缓存中

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指向问题。