JavaScript

超轻量级php框架startmvc

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

更新时间:2020-09-07 14:48:01 作者:startmvc
关键是letthat=this因为在onLoad的wx.request方法里,this指的是wx.request的上下文,所以应该是在onL

关键是 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 thirdScriptError
Cannot read property 'setData' of null;at pages/index/index onLoad function;at api request success callback function
TypeError: 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
 })
 }
 })
 }
})

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

微信小程序 调用远程接口 全局数组赋值