在使用mpvue開發小程序時,做到了商品評價這一塊,遇到了一個問題,就是每次評價完某一商品,再去評價另一商品時,商品評價頁面的數據不重置,查閱了很多資料,最后通過在onLoad里面通過
Object.assign(this.$data, this.$options.data()); 手動重置了數據,也可以在onShow中重置數據,但是頁面加載時,onLoad里面的方法是最先調用的,並且需要在onLoad里面獲取頁面的傳參,如果你的與后端進行數據交互的方法是放在onShow中的,並且還需要前一個頁面的傳參,那么,在onShow手動重置數據時,會把你獲取的傳參也重置掉,
onLoad(option) { Object.assign(this.$data, this.$options.data()); this.primaryColor = wx.getStorageSync("mainColor"); this.GetUserEvaluateDetailsDTO.orderItemKeyId = option.orderItemKeyId; this.GetEvaluateStateDTO.orderItemKeyId = option.orderItemKeyId; if (wx.getStorageSync('token')) { this.userAuth = true; } else { this.userAuth = false; } // this.evaluteObj.evaluateResultDTO = {}; // this.evaluteObj.appendEvuluateResultDTO = {}; // this.isActive = false; // this.commentList = []; // this.replyList = []; wx.showLoading({ title: '加載中', }) // this.commentState = 'initial'; // this.page = 1; this.reqGetDetails(); this.reqGetGoods(); }
注釋掉的是我需要重置的數據,頁面加載是,數據沒有自動重置,我就可以在onload里通過
Object.assign(this.$data, this.$options.data());
進行重置,大大的減少了代碼量。第一次寫,寫的有不對的地方,請多多指正。
