this.setData
发布于 5 年前 作者 wwen 387 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)我已经在wx.request前面加了var that=this了,为什么还是报错?获取的是列表数据
  • 预期表现

不报错

  • 复现路径
  • 提供一个最简复现 Demo

Page({

  data: {

    vip_list:null

  },

  onLoad: function (options) {

    this.vip_list();

  },

  vip_list(){

    //获取缓存access_token

    wx.getStorage({

      key: ‘access_token’,

      success: function (res) {

        if (Date.parse(new Date()) + 2000 < res.data.expires) {

            //读取缓存access_token

            wx.getStorage({

              key: ‘login_info’,

              success: function (b) {

                var that = this;

                //会员列表

                wx.request({

                  url: http://api.wss.onlyjune.com/store_member/lists.html,

                  data: {

                    access_token: res.data.access_token,

                    page:‘10’,

                    user_token: b.data.user_token

                  },

                  method: ‘post’,

                  header: {

                    ‘Content-Type’: ‘application/json’

                  },

                  success: function (a) {

                    // console.log(a.data)

                    console.log(‘会员数据:’,a.data.data.data)

                    that.setdata({

                      vip_list: a.data.data.data

                    })

                  },

                  fail: function () { }

                })

              },

            })

        } else {

          console.log(‘access_token已过期请重新获取’);

        }

      },

    })

  },

})

3 回复

this作用域的问题

你把 var that = this; 放在   wx.getStorage({})的外面试下呢

报的是that为undefined

var that = this;

放到vip_list(){下面

this.setData({}) 注意大小写

回到顶部