收藏
回答

wx.request的success中无发修改页面的初始数据?

下面两个方法都无法修改初始化数据中的sms,第一种是没效果,第二种直接报sms_code为空。求各位前辈指点一下

//反法一不行
Page({


  /**
   * 页面的初始数据
   */
  data: {
    TabCur0,
    scrollLeft:0,
    type0,
    btn_disabled:true,
    sms0
  },
  onLoadfunction (options{
    wx.request({
      url'http://xxx/wx/login/config',
      successfunction(res){
          this.setData({
            sms:res.data.data
          })
      }
    })


  },

//方法二也不行
Page({


  /**
   * 页面的初始数据
   */
  data: {
    TabCur0,
    scrollLeft:0,
    type0,
    btn_disabled:true,
    sms0
  },
  onLoadfunction (options{
            var sms_code;
        wx.request({
          url'http://xxx/wx/login/config',
          successfunction(res){
                       sms_code = res.data.data;
            }
          })
           this.setData({
            sms: sms_code
       })
      
        },
最后一次编辑于  2021-04-05
回答关注问题邀请回答
收藏

4 个回答

  •  
     
    2021-04-05
    //作用域的问题,最外层加上var that = this:
    var that = this
    wx.request({
      url'http://xxx/wx/login/config',
      successfunction(res){
        that.setData({
          sms:res.data.data
        })
      }
    })
    
    2021-04-05
    有用 2
    回复 1
    • 琦森
      琦森
      2021-04-19
      这样子又不行了,不知道为何
      2021-04-19
      回复
  • 耿霄
    耿霄
    2021-04-05

    如果支持 es6 的话 ,改成箭头函数

    success: (res) => {
      // 这里 this 能正常使用
    }
    


    2021-04-05
    有用 1
    回复
  • 迪克
    迪克
    2021-04-05

    方法一 this 作用域问题

    方法二 异步问题

    2021-04-05
    有用 1
    回复
  • 青寒
    青寒
    发表于小程序端
    2021-04-05

    在方法外面,var that=this; 然后在方法的success里面用that.setData设置值。

    2021-04-05
    有用 1
    回复
登录 后发表内容
问题标签