微信小程序返回上一頁傳參并刷新過程解析
這篇文章主要介紹了微信小程序返回上一頁傳參并刷新過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
問題
微信小程序onLoad(options)方法在整個生命周期中只加載一次,也就是你進入下個頁面,再返回時,是不會再次觸發(fā)的,所以你返回是url傳參是行不通了。
需求
現(xiàn)在有這么一個需求:一個商品支付頁面,點擊優(yōu)惠卷進入優(yōu)惠券列表頁,選中優(yōu)惠券后帶著數(shù)據(jù)再返回到支付頁面。
方法
一、使用到的方法是小程序的頁面棧,感興趣可以打印一下pages的內(nèi)容,就是你頁面跳轉(zhuǎn)的軌跡數(shù)組,最后一項就是當前頁面,倒數(shù)第二個就是上一頁。很好理解,因為在當前頁停止了,肯定是最后一個
//獲取頁面棧 let pages = getCurrentPages(); //獲取所需頁面 let currPage = pages[pages.length - 1];//當前頁面 let prevPage = pages[pages.length -2];//上一頁
二、在支付頁把需要再次刷新的數(shù)據(jù)都放到onShow()方法中,不需要刷新的放到onLoad()方法中
思路
1、我們的目標是把優(yōu)惠券的數(shù)據(jù)渲染到支付頁上,所以先在優(yōu)惠券頁面點擊優(yōu)惠券的時候通過頁面棧獲取到上一頁(也就是支付頁),將本條數(shù)據(jù)動態(tài)添加到支付頁的data中
//獲取頁面棧 let pages = getCurrentPages(); //獲取所需頁面 let prevPage = pages[pages.length -2];//上一頁 prevPage.setData({ yourData:yourData,//你需要傳過去的數(shù)據(jù) });
2、將需要刷新的數(shù)據(jù)放到onShow()方法中
//這里展示在onShow方法中獲取當前頁onLoad方法中的options onShow:function(){ let pages = getCurrentPages(); let currPage = pages[pages.length - 1]; //當前頁的options,啥意思呢,就是你可能某個函數(shù)需要刷新,但是他的參數(shù)正好是傳過來的參數(shù) console.log(currPage.options); }
你在優(yōu)惠券頁點擊之后,因為你的數(shù)據(jù)已經(jīng)存到支付頁了,所以返回支付頁后,你可以直接在data中獲取到你需要的數(shù)據(jù),進行你需要的操作。
Ok,這就完事了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript實現(xiàn)的可變動態(tài)數(shù)字鍵盤控件方式實例代碼
本篇文章主要介紹了JavaScript實現(xiàn)的可變動態(tài)數(shù)字鍵盤控件方式實例代碼,具有一定的參考價值,有興趣的可以了了解一下2017-07-07