回覆列表
  • 1 # c裂縫中的陽光c

    例如:

    //A頁面相關程式碼

    wx.navigateTo({

    url:"/pages/Apage/Apage?a=1&b=2"

    })

    //B頁面相關程式碼

    Page({

    onLoad:function(options){

    var a=options.a;//a的值:1

    var b=options.b;//b的值:2

    }

    })

    但這個方法是對於目標檔案還沒建立時有效,因為一個頁面onLoad函式在頁面生命週期中,只執行一次。如果是A跳到B,再回到A並把B的資料傳回來,就沒法實現了。

    一、使用全域性儲存資料

    1.將要儲存的資料,儲存到App物件上(如globalData屬性)。

    var app=getApp()

    app.globalData.mydata={a:1,b:2}//

    wx.navigataBack();//返回上一頁

    2.將要傳遞的資料,儲存在小程式本地資料快取(Storage)中。

    wx.setStorage({

    key:"mydata",

    data:{a:1,b:2},

    success:function(){

    wx.navigataBack();//返回上一頁

    }

    })

    注:全域性資料儲存,必須謹慎管理,生命週期等問題

    二、從頁面路由棧中直接獲取和操作目標Page物件

    這種方式,是透過呼叫小程式的API getCurrentPages(),來獲取當前頁面路由棧資訊,這個路由棧是按照頁面路由順序存放著相應的Page物件,可以很容易獲得上一頁的Page物件,從而使直接呼叫Page物件的屬性和方法成為可能。

    var pages=getCurrentPages();

    var currPage=pages[pages.length-1];//當前頁面

    var prevPage=pages[pages.length-2];//上一個頁面

    //現在就可以,直接呼叫上一個頁面的setData()方法,把資料存到上一個頁面中去

    prevPage.setData({

    mydata:{a:1,b:2}

    })

  • 中秋節和大豐收的關聯?
  • 屬龍人出生日的命運,屬龍人哪天出生最好?