uniapp重新渲染页面_uni-app之数据状态改动后页面不刷新踩坑

时间:2025-05-08 10:02:42

今天有个需求,在onshow里面执行函数,请求过来一堆代取的包裹(快递),然后勾选之后把数据集合放到一个list里面给后端发过去,这些包裹状态就变成了已取,正常情况下应该是到了下一个界面,但是uni-app的request请求并没有实时更新,这些勾选完的快递还在,只有刷新页面才会消失,我这时候的第一想法是在勾选完之后发送list的函数之后重新调用页面加载函数,但是服务器处理数据明显需要时间,要远不及js的执行顺序来的快,但是这种重新请求数据的逻辑上是可行的,所以我利用了一个延时器,在一秒之后重新请求,这个时间足够服务器响应,也就完成了一个数据虚假实时更新,希望uni-app以后能更加完善,解决掉这个问题,还有v-for在自定义组件失效,以及诸多坑。

页面加载函数

getWaiting() {var that=('http://192.168.3.148:8084/takeServiceOrder/findServiceOrderBySubstitute',

{

serviceUserId: ,

status:0},

data=>{

= 0;for (var i = 0; i < ; i++) {

({

id: data[i].id,

takeDeliveryOrderId: data[i].takeDeliveryOrderId,

parcelId: data[i].parcelId,

cuId: data[i].cuId,

name: data[i].nickName,

phone: data[i].phone,

address: data[i].campusName+ data[i].floorNumber + '号楼' +data[i].doorNumber,

point: data[i].pickupAddress,

company: data[i].logisticsName,

number: data[i].pickCode,

checked:true});

}

}

);

},

提交请求函数

sendId() {var that== 0;for (var i = 0; i < ; i++) {if ([i].checked == true) {

({

id: [i].id,

takeDeliveryOrderId: [i].takeDeliveryOrderId,

parcelId: [i].parcelId,

cuId: [i].cuId,

status:'1'});

}

}

('http://192.168.3.148:8084/takeServiceOrder/update',

{"commonIdBos":

},

(data)=>{

(data)

}

)

setTimeout(()=>{()

},1000)

},