• 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)
            },
  • 相关阅读:
    Spring Cloud Ribbon实现客户端负载均衡
    Spring Boot 初步小结
    日志配置
    外部属性文件的使用
    运行jar
    类型安全的配置文件
    java动态代理中的invoke方法是如何被自动调用的(转)
    数据库为什么要用B+树结构--MySQL索引结构的实现(转)
    Java transient关键字使用小记(转)
    面试题思考:Java 8 / Java 7 为我们提供了什么新功能
  • 原文地址:https://www.cnblogs.com/hurenjie/p/11856808.html
Copyright © 2020-2023  润新知