收藏
回答

that.data取不到data中的值是为啥?

data: {
    time:"",
    count:1
   },
   checkupfunction(){
     
     //打卡
     var TIME = util.formatTime(new Date());
     this.data.time = TIME
     //获取当前时间
     var that = this
     this.data.count = 1
     var stic = getApp()
     var getxuehao = stic.globalData.xuehao
     //传递学号
     console.log(this.data.count)
}

 data: {
    massage:"",
    time:"",
    count:1
  },
  getdata:function(e){
    this.setData({
      massage:e.detail.value
    });
  },
  setmassagefunction(){
    
    //打卡
    var TIME = util.formatTime(new Date());
    this.data.time = TIME
    //获取当前时间
    var that = this
    var stic = getApp()
    var getxuehao = stic.globalData.xuehao
    //传递学号
    wx.cloud.init()
    const db = wx.cloud.database()
    //连接数据库
    console.log(getxuehao)
    console.log(that.data.count)
}


上下连段代码,下面那个可以直接打印出count值,上面那段打印结果为“Undefined” ,使用“this.data.count = 1”才能正确读值,两端代码一模一样,只是写在不同页面,实在理解不了是为啥,有没有大佬可以帮忙解释一下。


回答关注问题邀请回答
收藏

1 个回答

  • Admin ²º²³
    Admin ²º²³
    2020-05-24
    用setData
    var that=this;
    this.setData({
    count:1,
    res=>{
      console.log(that.data.count);
    });
    
    2020-05-24
    有用
    回复 2
    • Linda man
      Linda man
      2020-05-24
      我用this.dat.count = 1赋值是可用的,我想知道为什么不能不赋值直接取,我吧代码复制到其他页面不赋值也能取到1,但就是本来的页面不赋值就是未定义,我几个页面代码都贼简单,基本一样,完全想不明白
      2020-05-24
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-05-24回复Linda man
      不用setdata的话,数据不会立即刷新,获取到的会是旧数据。会在下一次setdata后刷新值
      2020-05-24
      回复
登录 后发表内容
问题标签