赞
踩
对于uni.switchTab
切换到的页面,如果使用了类似于uni.switchTab({ url: '/pages/route/route?type=4' })
这样的方式,携带参数的情况会遇到一些问题。uni.switchTab
并不直接支持传递参数,而且 TabBar 页面在切换时可能无法正常获取到传递的参数。
一个常见的解决方案是使用全局状态管理(比如Vuex)或者小程序的全局数据(getApp().globalData
)来在跳转前存储数据,然后在目标页面的onLoad
或onShow
生命周期中获取这些数据。
在跳转前存储参数:
- // 在当前页面的某个方法或事件中
- uni.setStorageSync('targetPageParams', { type: 4 });
- uni.switchTab({
- url: '/pages/route/route',
- });
在目标页面的onLoad
或onShow
中获取参数:
- // 在目标页面的 page.js 文件中
-
- export default {
- onLoad() {
- // 获取存储的参数
- const targetPageParams = uni.getStorageSync('targetPageParams');
- console.log('参数:', targetPageParams);
-
- // 清除参数(可选)
- uni.removeStorageSync('targetPageParams');
- },
- // 其他生命周期函数和配置项
- };
这种方法通过全局存储数据的方式,可以在目标页面加载时获取到传递的参数。请注意在使用uni.setStorageSync
时,如果需要,可以在目标页面加载后清除已经使用过的参数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。