查看: 16|回复: 0

uni-app之数据状态改动后页面不刷新踩坑

[复制链接]

0

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-3-17
发表于 2019-11-14 14:19:00 | 显示全部楼层 |阅读模式

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

页面加载函数

getWaiting() {
            var that=this
            that.Post(
                'http://192.168.3.148:8084/takeServiceOrder/findServiceOrderBySubstitute',
                {
                    serviceUserId: that.userId,
                    status: 0
                },
                data => {
                    that.listone.length = 0;
                    for (var i = 0; i < data.length; i++) {
                        that.listone.push({
                            id: data.id,
                            takeDeliveryOrderId: data.takeDeliveryOrderId,
                            parcelId: data.parcelId,
                            cuId: data.cuId,
                            name: data.nickName,
                            phone: data.phone,
                            address: data.campusName + data.floorNumber + '号楼' + data.doorNumber,
                            point: data.pickupAddress,
                            company: data.logisticsName,
                            number: data.pickCode,
                            checked: true
                        });
                    }
                }
            );
        },

提交请求函数

sendId() {
            var that=this
            that.sendlistone.length = 0;
            for (var i = 0; i < that.listone.length; i++) {
                if (that.listone.checked == true) {
                    that.sendlistone.push({
                        id: that.listone.id,
                        takeDeliveryOrderId: that.listone.takeDeliveryOrderId,
                        parcelId: that.listone.parcelId,
                        cuId: that.listone.cuId,
                        status: '1'
                    });
                }
            }
            that.Post(
            'http://192.168.3.148:8084/takeServiceOrder/update',
            {
                "commonIdBos":that.sendlistone
            },
            (data)=>{
                console.log(data)
            }
            )
            setTimeout(()=>{
                this.getWaiting()
            }, 1000)
        },

 



来源:https://www.cnblogs.com/hurenjie/p/11856808.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部