1. 程式人生 > >小程式返回上介面不重新整理問題

小程式返回上介面不重新整理問題

現在假設我有個A介面,列表或者是其他的介面,從A介面點選跳轉到B介面,然後在B介面操作後A介面應該發生變化,但是實際上我們點選返回的時候我們發現並沒有重新整理,這個時候我們應該通過介面棧來實現A介面的重新整理,下面是重點:

1,首先,我們在A介面寫一個函式,假如叫 changeData() ,注意這個函式並不是在onload裡面,應該和onload是同級目錄,程式碼塊如下:

changeData: function (historyArr) {
let _this=this;
    this.loadList();
},
onLoad:function(){//................},

2,其次,我們應該在B介面中新增若干個獲取介面棧的程式碼塊,舉個例子吧,

①,我想在B介面初始化的時候就讓A介面實現重新整理,這個時候我們可以在B介面的onload裡面新增程式碼塊,如果B介面onload裡面請求了函式,我們可以在請求的函式的

success中呼叫程式碼塊,具體程式碼塊如下:解釋已經說明

//獲取頁面棧
var pages = getCurrentPages();
if (pages.length > 1) {
    //上一個頁面例項物件
    var prePage = pages[pages.length - 2];
    //關鍵在這裡,這裡面是觸發上個介面
    prePage.changeData(prePage.data.historyArr)// 不同的人裡面的值是不同的,這個資料是我的,具體的你們要根據自己的來檢視所要傳的引數
}
②,我想在介面B操作後介面A實現重新整理,或者是介面的區域性重新整理,這個時候我們應該在B介面中的你想要的操做的函式執行完成後(具體的看情況)呼叫上面的程式碼塊

3,想要試試行不行,建議列印看下吧,A介面的函式加列印的資料的話觸發是在B介面觸發的,這點需要注意,別把console控制檯清了;

我們的原理就是通過介面棧獲取上個介面,再獲取到上個介面對應的函式,然後我們通過獲取到上個介面的函式來觸發上個介面的介面重新載入。