uni-app 解决this动态传参赋值不响应的问题

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

如下代码:

<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ougexingfuba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值