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)
        },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM