小程式 頁面傳值詳解,小程式詳解
小程式 頁面傳值詳解
一. 跨頁面傳值.
1 . 用 navigator標籤傳值或 wx.navigator, 比如
這裡將good_id=16 參數傳入detail頁面, 然後detail頁面的 onload方法內接受.
如果需要傳多個參數, 用 & 連結即可
如果要傳 數組, 字典等複雜類型, 要先用 JSON.stringify() 轉成字串傳遞.
注 : 如果轉化的字串中 有"?"這個符號, 則只會傳遞"?"以前的字串, 這個問題我猜想可能是小程式內部的路由處理 對這個"?"敏感吧
好, 這是第一種 依靠跳轉的url帶參數傳值
2 . 用getCurrentPages(); 擷取棧中全部頁面的, 然後把資料寫入相應頁面
這裡可以傳字串, 也能傳數組等,
這樣就把 address 傳遞並接受了
注 : 這個方法適合 往後面傳值(即已經存在的頁面), 這樣才能在棧中找到並主動寫入資料, 且 一定要在 onshow() 方法中接受, 因為再次返回只執行onshow()方法.
3 . 寫入本地, 跨頁面在取出來 wx.setStorage/wx.getStorage等, 小程式中對寫入本機資料 封裝了很多方法, 各有側重, 這裡就不多說了
4 . 把 資料聲明為全域變數
var detail = getApp().detail; 可在任何頁面擷取
二. 頁內傳值
1 . 設定id的方法標識跳轉後傳遞後的參數
在bindtap定義的點擊方法 swiperTap : function(e) ; 中擷取, var id = e.currentTarget.id;
2 . 設定 data-xxx 的方法來標識要傳遞的值
注 : 這裡 data-index="{{index}}" 裡的 {{index}} 是有效, 在用wx-for 渲染視圖層時, index 代表點擊的下標. 在bindtap定義的點擊方法 swiperTap : function(e) ; 中擷取, 即 var index = e.currentTarget.dataset.index; 其他的參數取出也如此, var type = e.currentTarget.dataset.type;
3 . form表單和input輸入框
感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!