uni-app请求后再次发送请求赋值失败this.$forceUpdate();

本文探讨了在uni-app中处理请求与数据更新的问题,详细介绍了如何通过计时器检查请求状态并正确更新数据,避免页面渲染问题。分享了一种在数据更新后强制重新渲染的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天使用uni-app运到一个问题请求时赋值,再次赋值后发现赋值不成功。
第一步,发送请求,接收请求后则判断获取请求成功(注:如果接口错误或者请求失败请将isFor改成true)

 data() {
     return {
		dataList:[],
		isFor:false,			// 用来判断是否请求成功
       }
  },
_ajaxs("某某接口",{参数},"POST",(res)=>{		// _ajaxs自己封装的接口
	slef.dataList = res.data
	slef.isFor = true
})

第二步,使用计时器判断isFor 为true时发送请求,否则每秒执行一次

let setIn = setInterval(function() {
if(slef.isFor){			// 如果进到里面则数据获取成功
		for(let i=0;i<slef.dataList.length;i++){
			slef.dataList[i].dataN = []
			slef.ajaxQ(slef.dataList[i].id,i)		// 请求时要获取dataList里面的id
		}
		slef.isFor = false
		clearInterval(setIn)						// 清除计时器
	}
},1000)		// 时间目前定义1秒,时间自己可以调(感觉最好事300毫秒吧)

第三步,定义请求

ajaxQ:function(id,num){
		_ajaxs("某某接口",{参数},"POST",(resN)=>{
			let arr = resN.data.list
			this.dataList[num].dataN = arr
			this.$forceUpdate(); 		// 在数据更新后添加强制重新渲染(重点),不然页面上能获取到dataN值但是页面就是不渲染。百度到吐血,最后还是群里大神解决的
		})
	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值