1. 程式人生 > >微信小程式返回上一頁資料自動更新

微信小程式返回上一頁資料自動更新

需求

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

這樣就解決了返回上一頁 不重新整理頁面更新狀態了。