小程序tab頁無法傳遞參數(shù)的方法
微信小程序tab頁面不能傳參解決方案:
1.設(shè)置全局變量,通過全局變量訪問
2.小程序本地存儲
小程序不支持tab頁面?zhèn)鬟fqueryString參數(shù),無論是navigator,還是通過api跳轉(zhuǎn)
遇到的問題如下:
小程序navigator組件默認不能跳轉(zhuǎn)到tabbar頁面
這個官方文檔寫了需要設(shè)置open-type為reLaunch或者switchTab,通過api跳轉(zhuǎn)的話同上
<navigator url="/page/index/index" open-type="switchTab">切換 Tab</navigator>
api:wx.switchTab({}) / wx.reLaunch()
在跳轉(zhuǎn)時通過在點擊事件中設(shè)置本地存儲后在另一個頁面獲取不到的問題
通過wx.getStorage()獲取不到數(shù)據(jù),遂改為了wx.getStorageSync()此種方式在開發(fā)者工具上可以獲取到,但是發(fā)現(xiàn)在部分android機型上無法獲取,猜測是因為navigator跳轉(zhuǎn)時可能并沒有立即存儲數(shù)據(jù),導(dǎo)致另一邊獲取不到,于是改成了將數(shù)據(jù)保存為全局變量,而不是本地存儲,然而,此種方法還是有問題,在真機上部分機型會出現(xiàn)"OnWebviewEvent: goPage, WebViewId xxxxxxxxx not found"警告,猜測是navigator組件的問題,所以改用了下面這種辦法
1.改為通過api跳轉(zhuǎn),
goToMall: function() {
/*
global_data 為小程序的全局變量,
*/
global_data.scenic_link_id = this.data.scenic_link_id;
wx.switchTab({
url: '/pages/mall/index/index',
});
}
2.在接收數(shù)據(jù)的onShow中接收,如果寫在onLoad中,在跳轉(zhuǎn)的時候不應(yīng)該用wx.switchTab跳轉(zhuǎn),而應(yīng)該用wx.reLaunch跳轉(zhuǎn),因為如果要跳轉(zhuǎn)的頁面以前已經(jīng)被打開了,用switchTab并不會重新渲染頁面,只會把頁面棧中的這個頁面重新顯示出來
let id = global_data.scenic_link_id || "1";
// 獲取到值后清除,然后重新設(shè)置為默認值,這樣下次如果是從默認的頁面進來的話才會讀取默認的數(shù)據(jù)
if (id != "1") {
global_data.scenic_link_id = "1"
};
this.setData({
scenic_link_id: id
}, () => {
// 網(wǎng)絡(luò)請求
this.fetch();
});
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用js判斷數(shù)據(jù)是否是數(shù)組或字符串的常見方法
這篇文章主要給大家介紹了關(guān)于利用js判斷數(shù)據(jù)是否是數(shù)組或字符串的常見方法,其實有很多方法可以判斷數(shù)據(jù)是否是數(shù)組或字符串,需要的朋友可以參考下2023-07-07
JavaScript窗口功能指南之在窗口中書寫內(nèi)容
JavaScript窗口功能指南之在窗口中書寫內(nèi)容...2006-07-07
JavaScript?中的單例內(nèi)置對象Global?與?Math
這篇文章主要介紹了JavaScript?中的單例內(nèi)置對象Global與Math,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07
JavaScript中防抖和節(jié)流的實戰(zhàn)應(yīng)用記錄
防抖與節(jié)流都是用來限制用戶頻發(fā)觸發(fā)事件的機制,下面這篇文章主要給大家介紹了關(guān)于JavaScript中防抖和節(jié)流的實戰(zhàn)應(yīng)用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04

