技术不行但人小帅 2023-02-24 19:36 采纳率: 59.2%
浏览 36
已结题

uniapp 微信云开发数据库获取的数据无法赋值给data变量

uniapp 微信小程序调用微信云开发服务器返回的数据如何赋值给data 变量?


 data(){
  return{
rentlists="13123"
}
}


  
        created(){
            const db = wx.cloud.database()
            db.collection('myRent').where({
             type: 'info'
            
            }).get({
                success: function(res) {
                     let that=this
                  console.log(that.rentlists);  //       undefined?    预期应该是rentlists="13123"
                    // 输出 [{ "title": "The Catcher in the Rye", ... }]
                    that.rentlists=res.data;  //能接收到数据、
                    console.log(that.rentlists) //此时res.data的确赋值给rentlists 但这个rentlists似乎不是上方data中的rentlists? 
                }
            })
        },
  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-02-24 19:43
    关注

    该回答引用ChatGPT

    在您的代码中,可以通过 that 变量来访问 Vue 实例中的 data 变量,但是 that 变量在 success 函数内部定义,而 this 关键字的作用域在 success 函数内部也是不同的,这导致了 that.rentlists 和 this.rentlists 引用的是不同的变量。

    为了在 success 函数中访问 Vue 实例的 data 变量,可以先将 Vue 实例的 this 绑定到另一个变量,然后在 success 函数中通过这个变量来访问 data 变量。可以按照如下方式修改代码:

    
    data() {
      return {
        rentlists: "13123"
      };
    },
    created() {
      const db = wx.cloud.database();
      let vm = this;
      db.collection('myRent').where({
        type: 'info'
      }).get({
        success: function (res) {
          console.log(vm.rentlists);  // vm 变量引用的是 Vue 实例,可以通过它来访问 data 变量
          vm.rentlists = res.data;
          console.log(vm.rentlists);
        }
      })
    }
    
    

    在上述代码中,我使用了 vm 变量来引用 Vue 实例,在 success 函数内部通过这个变量来访问 data 变量。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月24日
  • 已采纳回答 2月24日
  • 创建了问题 2月24日

悬赏问题

  • ¥15 VB.NET2022如何生成发布成exe文件
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云
  • ¥15 C# 调用Bartender打印机打印