8 回复
这边有个浅见,你这个问题本来就不成立,上面读取文件回调里定义的myViews,本来就不能在外面使用,你下面setData肯定报错,是不能使用的。因为var是在当前作用域下声明一个变量,即使用了箭头函数,改变的只是执行上下文,也就是this的指向。如果是一般网页中,试下不在函数体内声明,直接myViews = XXX,会变成全局变量,外面也能用,而且和是否箭头函数无关,你可以试试。但是在小程序内,变量不声明是不被允许的,一下就报错了。记住函数体内声明的变量只在函数体内使用。
然后你使用了箭头函数,this指向了当前上下文,你这里应该是当前页面实例,回调里赋值应该为this.myviews,外面setData也使用this.myviews。
当然这个也是会错的,上面那个是异步的回调,下面当然就拿不到。。所以,你为什么不直接在回调里setData呢?