我在控制台的AppData可以看到数据,但是却无法读出来,谁能教教我怎么写?
发布于 5 年前 作者 liaojun 10368 次浏览 来自 问答

当前在控制台可以看到qian的各项属性

但是在函数中缺读取不到:

data中声明的qian:

qian是从数据库中得到的值

js全文代码附上:

//index.js

const app = getApp()

Page({

  data: {

    worldDate:"2021年3月19日 星期五",

    chineseDate:"辛丑年二月初七",

    standardDate:"",

    userInfo: {},

    qian:{},

    hasUserInfo: false,

    logged: false,

    takeSession: false,

    requestResult: '',

    canIUseGetUserProfile: false,

    canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl'// 如需尝试获取用户信息可改为false


  },



  onLoad: function() {

    var that=this;

    var myDate= new Date();

    var standDate=myDate.getFullYear();

    that.setData({

      thisDate:standDate,

    })

    const db = wx.cloud.database({env:'chouqian-dev-2g8br1faf3d8739d'})

    db.collection('qiantong').where({_id:'0001'}).get({

      success:res=>{

        //  console.log('[数据库] [查询记录] 成功: ',res.data[0]);

        that.setData({

          qian:res.data[0]

        })

      }

    })


  //  初始化获取用户公开信息的接口状态参数

    if (wx.getUserProfile{

      this.setData({

        canIUseGetUserProfile: true,

      })

    }

  // 获取用户的openid,并写入数据库

    this.onGetOpenid() 

    this.addOpenidQianDate()

  },


  // 获取用户信息

  getUserProfile() {

    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗

    wx.getUserProfile({

      desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写

      success: (res) => {

        this.setData({

          avatarUrl: res.userInfo.avatarUrl,

          userInfo: res.userInfo,

          hasUserInfo: true,

        })

      }

    })

  },


  onGetUserInfo: function(e) {

    if (!this.data.logged && e.detail.userInfo{

      this.setData({

        logged: true,

        // avatarUrl: e.detail.userInfo.avatarUrl,

        userInfo: e.detail.userInfo,

        hasUserInfo: true,

      })

    }

  },

  // 获取用户信息结束


  // 获取openid 

  onGetOpenid: function() {

    // 调用云函数

    wx.cloud.callFunction({

      name: 'login',

      data: {},

      success: res => {

        console.log('[云函数] [login] user openid: ', res.result.openid)

        app.globalData.openid = res.result.openid

      },

      fail: err => {

        console.error('[云函数] [login] 调用失败', err)

      }

    })

  },


  //将openid,签,日期写入数据库

  addOpenidQianDate: function (){

    console.log(this.data.qian._id)

    const db = wx.cloud.database()

    db.collection('counters').add({ 

      data: {

        // qianID:this.data.qian._id,

        // date:this.data.standDate,

        qianID:'0001',

        date:'20210302',

      },

    // })

  },

2 回复

从数据库查询成功后

setData后

才可以用this.data.qian读

回到顶部