如下代码:
<view class="uni-list-cell scroll-view-item">
<view class="uni-list-cell-left">
访客姓名
</view>
<view class="uni-list-cell-db">
<input class="uni-input" name="VisitorName" v-model="VisitorName" focus placeholder="请输入访客姓名" />
</view>
</view>
getVisitorDetail(){
uni.getStorage({
key: 'visitor_detail_key',
success: function (res) {
if(res.data.length!=0){
//console.log(res.data);
this.VisitorName = res.data.VisitorName;
console.log(this.VisitorName);
}
}
})
},
这个代码中使用普通的success:funtion(){} 经常用普通函数 因此我们使用this.token赋值的时候出现怎么都赋不上值因为
uni.getStorage 中success方法指向闭包,所以this属于闭包,由此在success回调函数里是不能直接使用this.VisitorName赋值。
解决方法:
1.在方法外使用let that=this的方法 that.VisitorName=res.data.VisitorName;
getVisitorDetail(){
let that=this;
uni.g

在uni-app开发中,当使用uni.getStorage的success回调时,由于其内部的this指向闭包,导致无法通过this直接为实例属性赋值。为解决这个问题,可以采用两种方法:1. 在外部用let that = this,然后通过that.VisitorName进行赋值;2. 使用箭头函数,以保持this指向正确。本文旨在帮助开发者解决此类问题。
最低0.47元/天 解锁文章
967

被折叠的 条评论
为什么被折叠?



