zoukankan      html  css  js  c++  java
  • uni-app之数据状态改动后页面不刷新踩坑

    今天有个需求,在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[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=this
                that.sendlistone.length = 0;
                for (var i = 0; i < that.listone.length; i++) {
                    if (that.listone[i].checked == true) {
                        that.sendlistone.push({
                            id: that.listone[i].id,
                            takeDeliveryOrderId: that.listone[i].takeDeliveryOrderId,
                            parcelId: that.listone[i].parcelId,
                            cuId: that.listone[i].cuId,
                            status: '1'
                        });
                    }
                }
                that.Post(
                'http://192.168.3.148:8084/takeServiceOrder/update',
                {
                    "commonIdBos":that.sendlistone
                },
                (data)=>{
                    console.log(data)
                }
                )
                setTimeout(()=>{
                    this.getWaiting()
                }, 1000)
            },
  • 相关阅读:
    Linux命令:cp (copy)复制文件或目录
    使用 robots.txt 文件阻止或删除网页说明
    ecshop优化修改sitemap.xml到根目录
    我虚拟机上装的CentOS系统显示的ip配置是127.0.0.1,请问如何解决?
    Servlet/JSP vs. ASP.NET MVC
    Ubuntu Linux 上安装Apache的过程
    Ubuntu Linux 上安装Eclipse的过程
    sudo的意义
    Dependency Injection
    Ubuntu Linux 上安装TomCat的过程
  • 原文地址:https://www.cnblogs.com/hurenjie/p/11856808.html
Copyright © 2011-2022 走看看