微信小程序頁面間傳值問題[getCurrentPages()] 及 小程序組件中的[onload方法]


十年河東,十年河西,莫欺少年窮

學無止境,精益求精

小程序組件中沒用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 的方式

注意:在主頁面,或使用到該查詢頁的頁面,要定義相同名稱,相同屬性的變量

 

 至此,結束。

#@天才卧龍的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM