小程序
小游戏
企业微信
微信支付
扫描小程序码分享
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这边有个浅见,你这个问题本来就不成立,上面读取文件回调里定义的myViews,本来就不能在外面使用,你下面setData肯定报错,是不能使用的。因为var是在当前作用域下声明一个变量,即使用了箭头函数,改变的只是执行上下文,也就是this的指向。如果是一般网页中,试下不在函数体内声明,直接myViews = XXX,会变成全局变量,外面也能用,而且和是否箭头函数无关,你可以试试。但是在小程序内,变量不声明是不被允许的,一下就报错了。记住函数体内声明的变量只在函数体内使用。
然后你使用了箭头函数,this指向了当前上下文,你这里应该是当前页面实例,回调里赋值应该为this.myviews,外面setData也使用this.myviews。
当然这个也是会错的,上面那个是异步的回调,下面当然就拿不到。。所以,你为什么不直接在回调里setData呢?
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
楼主可以查查箭头函数的作用域问题,可以理解为箭头函数的作用域和this.setData是相同的,个人猜测,可以深究一下。
作用域问题
把变量定义放到 文件最上面
this.myViews = res.data
应该是箭头函数的作用域和this.setData的作用域相同
它是个私有变量
请百度 js 作用域
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这边有个浅见,你这个问题本来就不成立,上面读取文件回调里定义的myViews,本来就不能在外面使用,你下面setData肯定报错,是不能使用的。因为var是在当前作用域下声明一个变量,即使用了箭头函数,改变的只是执行上下文,也就是this的指向。如果是一般网页中,试下不在函数体内声明,直接myViews = XXX,会变成全局变量,外面也能用,而且和是否箭头函数无关,你可以试试。但是在小程序内,变量不声明是不被允许的,一下就报错了。记住函数体内声明的变量只在函数体内使用。
然后你使用了箭头函数,this指向了当前上下文,你这里应该是当前页面实例,回调里赋值应该为this.myviews,外面setData也使用this.myviews。
当然这个也是会错的,上面那个是异步的回调,下面当然就拿不到。。所以,你为什么不直接在回调里setData呢?
楼主可以查查箭头函数的作用域问题,可以理解为箭头函数的作用域和this.setData是相同的,个人猜测,可以深究一下。
作用域问题
把变量定义放到 文件最上面
this.myViews = res.data
应该是箭头函数的作用域和this.setData的作用域相同
它是个私有变量
请百度 js 作用域