微信小程式返回上一頁資料自動更新
阿新 • • 發佈:2019-01-02
需求
For example,首頁有一篇文章,點選進入文章詳情頁,首頁和詳情頁都有收藏功能,如何在詳情頁收藏成功之後,首頁的收藏狀態可以 無重新整理修改?
getCurrentPages()
getCurrentPages()函式用於獲取當前頁面棧的例項,以陣列形式按棧的順序給出,第一個元素為首頁,最後一個元素為當前頁面。我們可以從控制檯打出該值(從首頁進入第二層頁面):
從圖中可以看出,每一個元素都包含了對應頁面棧裡面的所有方法;所以我們也可以通過這種方式,獲取到上一個層頁面裡面的data值,並且能修改data值,從而做到返回上一頁不重新整理頁面,既能改變頁面中的顯示狀態:
/**
*
*/
_updateHome() {
// 從首頁過來 && 驗證倒數第二個頁面棧為首頁(當前頁的上一頁)
let pages = getCurrentPages();
let l = pages.length;
let home = pages[l - 2];
if (home && home.route.indexOf('home') > -1) {
let read = home.data.read;
home.setData({
read: !read // 將修改完的狀態賦值給home頁的Data
});
}
},
這樣就解決了返回上一頁 不重新整理頁面更新狀態了。