十年河東,十年河西,莫欺少年窮
學無止境,精益求精
小程序組件中沒用OnLoad 事件,我們可以通過 lifetimes 事件來代替OnLoad事件,lifetimes 是在進入小程序組件Dom節點時觸發。
代碼如下
properties: { title: { type: String, value: "" } }, /** * 組件的初始數據 */ data: { ec: { onInit: initChart }, }, lifetimes: { attached: function () { // 在組件實例進入頁面節點樹時執行 this.GetData(); } }, /** * 組件的方法列表 */ methods: { GetData() {
言歸正傳
本文提供三種方式解決頁面傳值問題
1、通過本地存儲 wx.setStorageSync 來解決該問題,該種方式不推薦,不作演示
2、通過參數的方式進行傳遞,並在目標頁面中的OnLoad 方法中接收,此方式簡單,不作演示。
3、通過獲取當前頁面棧的方式來實現
假設,頁面A跳轉至頁面B,在B頁面,我們能否直接修改A頁面的參數呢?使用場景,跳轉頁作為查詢項
我的查詢頁面如下:
<!--template/selectPinpai/selectPinpai.wxml--> <view class="tjBox" bindtap="tjBoxClick" data-SystemID="2" data-GroupID="1011"> <view> 鑽速換電 </view> <view class="tjtext">品牌商</view> </view> <view class="tjBox" bindtap="tjBoxClick" data-SystemID="2" data-GroupID="1015"> <view> 廣州保士騎 </view> <view class="tjtext">經銷商</view> </view> <view class="tjBox" bindtap="tjBoxClick" data-SystemID="2" data-GroupID="1016"> <view> 政睿達租賃 </view> <view class="tjtext">經銷商</view> </view> <view class="tjBox" bindtap="tjBoxClick" data-SystemID="2" data-GroupID="1017"> <view> 政睿達租賃(南村片區) </view> <view class="tjtext">代理商</view> </view> <view style="height: 24rpx; margin-bottom:12rpx;"></view>
當點擊上圖箭頭指向的某個選項時,修改上一個頁面的參數【該方式最多支持10級頁面層次】,代碼如下:
/** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { }, tjBoxClick(e) { let that = this; var groupid = e.currentTarget.dataset.groupid; var systemid = e.currentTarget.dataset.systemid; var pages = getCurrentPages(); var currPage = pages[pages.length - 1]; var prePage = pages[pages.length - 2]; // console.log(prePage) // console.log(groupid) prePage.setData({ SearchGroupData: { groupid: groupid, systemid: systemid }, }) wx.navigateBack({ delta: 1 }) }
注意,該種方式跳轉到主頁面時,請使用: wx.navigateBack 的方式
注意:在主頁面,或使用到該查詢頁的頁面,要定義相同名稱,相同屬性的變量。
至此,結束。
#@天才卧龍的博客