首页 > 课堂 > 小程序 > 正文

微信小程序 调用远程接口 给全局数组赋值代码实例

2020-03-21 15:25:57
字体:
来源:转载
供稿:网友

关键是 let that = this

因为在onLoad 的 wx.request方法里, this指的是 wx.request 的上下文, 所以应该是在 onLoad 的时候定义 let that = this

调用远程服务,序列化后,把obj赋值给bookList

最开始的报错代码如下:

Page({ data: {  bookList: [] }, onLoad: function() {  wx.request({   url: 'https://jiashubing.cn/wechat/book',   header: {    'content-type': 'application/json'   },   success(res) {    var obj = JSON.parse(res.data)    console.log(obj)    this.setData({     bookList: obj    })   }  }) }})

报错为:

VM3293:1 thirdScriptErrorCannot read property 'setData' of null;at pages/index/index onLoad function;at api request success callback functionTypeError: Cannot read property 'setData' of null

报错原因是this 指向有问题,得在onload的时保存实例指向,let that = this,下面全用that,this指向永远值得是自己的上下文环境

正确代码如下:

Page({ data: {  bookList: [] }, onLoad: function() {  let that = this  wx.request({   url: 'https://jiashubing.cn/wechat/book',   header: {    'content-type': 'application/json'   },   success(res) {    var obj = JSON.parse(res.data)    console.log(obj)    that.setData({     bookList: obj    })   }  }) }})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表