1. 程式人生 > >wx.navigateBack()返回上一頁面如何傳引數?

wx.navigateBack()返回上一頁面如何傳引數?

wx.navigateBack()不能像其他導航一樣通過url傳參,因此只能使用其他方法:

先說兩個可以實現但弊端很大的方法:

1、將資料存到app.globalData中,然後返回上一頁面從全域性資料中獲取

        弊端:資料為全域性資料,必須謹慎維護,否則全域性某處做出修改,牽一髮而動全身

2、將資料存到本地快取中(localStorage),然後從快取中獲取  

        弊端:本地快取空間大小存在限制,若空間不足會自動清除其中最久未使用的資料,同樣可能會造成意想不到的影響

so?還有一個比較完美的方法,就是:

使用getCurrentPages()函式獲取頁面棧的例項,以陣列形式按棧的順序給出,第一個元素為首頁,最後一個元素為當前頁面。

var pages = getCurrentPages();
var currPage = pages[pages.length - 1];   //當前頁面
var prevPage = pages[pages.length - 2];  //上一個頁面
 
//直接呼叫上一個頁面物件的setData()方法,把資料存到上一個頁面中去
prevPage.setData({
  data:data
});
wx.navigateBack({
        delta: 1
      })

---------------------  作者:zSY_snake  來源:CSDN  原文:https://blog.csdn.net/zSY_snake/article/details/81216448