汤流婉 发表于 2025-11-29 05:50:01

uni-app - switchTab 跳转到 页面后不走onLoad,option无法更新

场景:tabbar页面是展示一个列表,页面中有一个搜索按钮,点击按钮进入搜索页面,输入字段以后返回tabbar页面展示相应的搜索结果,切换tabbar页面后搜索条件置空
方案1:使用 navigateTo跳转传值
坑1:因为搜索页要跳转的是tabbar页面,不能直接使用navigateTo 跳转,只能使用switchTab,但是switchTab不支持传参
方案2:使用reLaunch跳转传值
坑2:会清空路由栈,优化体验不太好,列表页的onshow周期接受不到传来的值,如果在onload接收后页面切换tabbar再回来就没有值了
搜索页:
uni.reLaunch({
  url:'/pages/order/index?options='+options
})
方案3:使用$emit,$on传值
坑3:如果在列表页的onload或者onshow接受值以后,切换tabbar再回来以后值依然存在。之前想通过onTabItemTap周期来清空,发现只能监听本tabbar页面回来的时候,如果需要清空需要监听其他tabbar页面,比较麻烦,就选择了需要配合onhide周期置空传参接受的data值
搜索页:
uni.$emit('updateData', options)
uni.navigateBack({
  delta: 1
})
列表页:
onShow(){
  uni.$on('updateData', data => {
    this.waybillNo = data.waybillNo;
    this.setOutVoucherNo = data.setOutVoucherNo;
    this.truckNo = data.truckNo;
  });
},
onHide() {
  this.waybillNo = "";
  this.setOutVoucherNo = "";
  this.truckNo = "";
}
方案4:使用uni.setStorageSync传值
坑4:这样的方式在于什么时候清空传过来的值,判断比较多,pass
方案5:最后使用的方法
搜索页:
let pages = getCurrentPages();
let prevPage = pages
prevPage.$vm.getValue(options)
uni.navigateBack({
  delta: 1
})
列表页:
methods里面加一个方法
getValue(options){
  this.waybillNo = options.waybillNo;
  this.setOutVoucherNo = options.setOutVoucherNo;
  this.truckNo = options.truckNo;
},
然后在onHide周期进行置空
onHide() {
  this.waybillNo = "";
  this.setOutVoucherNo = "";
  this.truckNo = "";
},

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

碣滥 发表于 2025-12-9 10:59:27

前排留名,哈哈哈

上官银柳 发表于 2025-12-17 18:37:26

谢谢楼主提供!

鄂缮输 发表于 2025-12-19 15:32:50

新版吗?好像是停更了吧。

殳世英 发表于 2025-12-22 14:05:26

用心讨论,共获提升!

捐催制 发表于 2025-12-25 17:51:09

喜欢鼓捣这些软件,现在用得少,谢谢分享!

仁夹篇 发表于 2025-12-29 15:40:11

喜欢鼓捣这些软件,现在用得少,谢谢分享!

欧阳梓蓓 发表于 2025-12-30 16:48:01

谢谢分享,辛苦了

蜴间囝 发表于 2026-1-5 09:46:25

新版吗?好像是停更了吧。

昆拗干 发表于 2026-1-10 18:52:15

谢谢楼主提供!

琴丁辰 发表于 2026-1-19 05:36:10

前排留名,哈哈哈

左丘纨 发表于 2026-1-19 06:44:27

感谢,下载保存了

厌外 发表于 2026-1-20 23:48:33

收藏一下   不知道什么时候能用到

茅断卉 发表于 2026-1-21 07:42:00

这个好,看起来很实用

孟茹云 发表于 2026-1-21 08:20:20

收藏一下   不知道什么时候能用到

少屠 发表于 2026-1-21 23:50:50

很好很强大我过来先占个楼 待编辑

倘伟 发表于 2026-1-22 12:53:46

感谢,下载保存了

指陡 发表于 2026-1-26 11:46:22

感谢分享

荆邦 发表于 4 天前

新版吗?好像是停更了吧。

圣罩 发表于 4 天前

这个有用。
页: [1] 2
查看完整版本: uni-app - switchTab 跳转到 页面后不走onLoad,option无法更新