頁面跳轉攜帶引數(以傳遞兩個引數為例)
a.wxml 頁面傳遞 1 <navigator url="/pages/b/b?id=1&sid='289'"> <navigator>
wx.navigateTo跳轉攜帶引數
1 wx.navigateTo({ 2 url: '/pages/a/a?id=1 + "&tu=" + 'a.jpg' 3 });
多個引數使用 & 連線 也可以寫成這樣(提倡)
1 var id=that.data.id; 2 var tu = that.data.id;
3 wx.navigateTo({ 4 url: `/pages/a/a?id=${id}&tu=${tu}` 5 });
需要攜帶的引數是個物件和陣列時如何?抱歉,不可以!
這時可以將物件和陣列轉成字串
1 let args = JSON.stringify(params); // 轉成字串攜帶
2 wx.navigateTo({ 3 url: `/pages/a/a?args=${args}` 4 });
跳轉頁面進行解析即可,在onload中捕獲引數
1 let args = JSON.parse(options.args); // 解析回物件或字串
當需要攜帶的引數太大,資料多如何?比如購物車到結算頁面,大量引數需要從購物車獲取,這樣傳值就太噁心了!
可以隔空取引數!!!
微信有提供這樣的api嗎??,抱歉,沒有!
但提供了獲取頁面棧的方法!
1. let pages = getCurrentPages();
2. let that = pages[pages.length - 2];
獲取上一個頁面的資訊
1. that.data 就為上一個頁面的data資料
操作上一個頁面的顯示
2. that.setData({
3. url: false // 上一個頁面的引數設定
4. })
#是不是很?!當然可以將頁面棧的方法封裝起來,方便呼叫
注意:該方式和前一個頁面的耦合在一起了,所以謹慎使用,如果前一個頁面是通過重定向跳轉的,就無法獲取到該頁面的資料了,
應重定向跳轉後該頁面會關閉,所以上一個頁面將會變成上上個頁面。(wx.redirectTo 方法跳轉)
對於單獨頁面來說,由於要獲取上一個頁面的資料,除錯起來就有點煩了!!!
明確的情況下使用還是可以的,哈。
wx.switchTab方法跳轉導航頁,無法攜帶引數,攜帶了也無效?
這時就可以通過本地的儲存來快取引數了,將引數快取,跳轉成功後取出,之後刪掉快取
宣告:以上是個人的總結,由於知識面不同,難免有疏漏,希望指出!