收藏
回答

setdata赋值失败

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 1.01.1805150




赋值没成功



第一行打印数据正常 是成功的   第二行对应的groupData值是空数据;   不知道是不是因为异步   真正赋值并未成功  ;但是如果是这样 为什么 第一行是成功的
所有的console.log() 是不是也都是异步的


最后一次编辑于  07-16  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

11 个回答

  • I can fly
    I can fly
    07-17

    异步了,你在 getGroupData 方法的成功回调里面打印试试


    07-17
    赞同 11
    回复 1
    • 飞扬
      飞扬
      07-17
      嗯 onload里的 console.log(this.data.groupData)先执行了;getGroupData还未赋值成功;
      07-17
      赞同
      回复
  • 兰昊
    兰昊
    07-16

    你可以把取值放在 setData的回调里面log一次试试。


    还有你的那个that是啥意思,,,

    07-16
    赞同
    回复 2
    • 飞扬
      飞扬
      07-17
      嗯 是的 在setdata里 执行完后打印是有结果的 还是异步的问题
      07-17
      赞同
      回复
    • 兰昊
      兰昊
      07-17回复飞扬
      race了。
      07-17
      赞同
      回复
  • 申雪猛
    申雪猛
    07-16


    07-16
    赞同
    回复
  • 卢友新
    卢友新
    07-16

    getgroupedata方法看不到,但是我看这个结果是没问题啊


    console的对象在没有展开前,都是第一次的值,展开后会再次引用对象可能会变。{..} 是有可能为空对象的

    07-16
    赞同
    回复 1
    • 飞扬
      飞扬
      07-16
      {...}展开里面是有值的 不是空对象 this.getGroupData()赋值成功了 从第一行打印结果可以看到
      07-16
      赞同
      回复
  • 飞扬
    飞扬
    07-16
    onLoad (options) {
        this.setData({
          groupid: options.groupid
        })
        this.getGroupData();
        console.log(this.data)
        console.log(this.data.groupData)
      },
     
      /**
          * 获取小组数据
          */
      getGroupData: function () {
        var that = this;
        var group_url = app.globalData.sgjlbBase + '/groups/' + that.data.groupid
        wx.request({
          url: group_url,
          data: {},
          method: 'GET',
          header: {
            "Content-Type": "json",
            "tsessionid": wx.getStorageSync('jwt')
          },
          success: function (res) {
            that.setData({
              groupData: res.data
            })
          },
          fail: function (error) {
            console.log(error)
          }
        })
      },



    07-16
    赞同
    回复 2
    • 卢友新
      卢友新
      07-18


      你可以看下,tt是空的,但是他会显示为{...}

      07-18
      赞同
      回复
    • 飞扬
      飞扬
      07-23回复卢友新
      嗯 多谢 这样显示 有时候确实误导人
      07-23
      赞同
      回复