【边做边学】uni.switchTab的目标页面获取不到url携的参数

本文介绍了在使用uni.switchTab时遇到的参数传递问题,提出通过全局状态管理(如Vuex)或小程序全局数据存储,然后在目标页面的onLoad或onShow生命周期中获取参数的解决方案。
摘要由CSDN通过智能技术生成

对于uni.switchTab切换到的页面,如果使用了类似于uni.switchTab({ url: '/pages/route/route?type=4' })这样的方式,携带参数的情况会遇到一些问题。uni.switchTab并不直接支持传递参数,而且 TabBar 页面在切换时可能无法正常获取到传递的参数。

一个常见的解决方案是使用全局状态管理(比如Vuex)或者小程序的全局数据(getApp().globalData)来在跳转前存储数据,然后在目标页面的onLoadonShow生命周期中获取这些数据。

在跳转前存储参数:

// 在当前页面的某个方法或事件中
uni.setStorageSync('targetPageParams', { type: 4 });
uni.switchTab({
  url: '/pages/route/route',
});

在目标页面的onLoadonShow中获取参数:

// 在目标页面的 page.js 文件中

export default {
  onLoad() {
    // 获取存储的参数
    const targetPageParams = uni.getStorageSync('targetPageParams');
    console.log('参数:', targetPageParams);
    
    // 清除参数(可选)
    uni.removeStorageSync('targetPageParams');
  },
  // 其他生命周期函数和配置项
};

这种方法通过全局存储数据的方式,可以在目标页面加载时获取到传递的参数。请注意在使用uni.setStorageSync时,如果需要,可以在目标页面加载后清除已经使用过的参数。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值