uni.switchTab跳转失败的原因

本文介绍了在uni-app中如何正确使用uni.switchTab跳转至pages内的tabBar注册页面,强调了URL路径必须以'/'开头的重要性。当URL缺少此前置字符时,会导致切换失败并触发fail回调。通过示例代码展示了正确的调用方式,帮助开发者避免常见错误。
  • 检查url是否是pages里面的tabBar注册的页面

  • 路径前面必须以 '/'开头

    uni.switchTab({
      url: '/pages/cate/cate',
      success(){      
      },
      fail() {
        console.log('失败了吗')
      }
    })
    

    没有这个’/'就会走到fail在这里插入图片描述

在使用uni.switchTab进行页面跳转后实现页面刷新,有以下几种方法: ### 使用uni.reLaunch替代 通过uni.reLaunch跳转页面会刷新页面,示例代码如下: ```javascript uni.reLaunch({ url: '/pages/mine/mine', success: function(e) { var page = getCurrentPages()[0]; if (page == undefined || page == null) return; page.onLoad(); } }); ``` 这种方法的原理是uni.reLaunch会关闭所有页面,打开到应用内的某个页面,从而实现页面的刷新 [^1]。 ### 利用onShow生命周期方法 在uni-app中,由于标签页面是单实例的,使用uni.switchTab跳转时不会触发onLoad生命周期方法,但会触发onShow方法。可以将需要在页面进入时执行的数据展示等操作放在onShow方法中,示例代码如下: ```javascript export default { onShow() { // 在这里进行数据的展示等操作 this.getData(); }, methods: { getData() { // 获取数据的逻辑 } } } ``` [^2] ### 在success回调中手动调用页面方法 在uni.switchTab的success回调中,获取当前页面实例并调用页面的方法来实现数据更新和页面刷新,示例代码如下: ```javascript uni.switchTab({ url: '/pages/tabBar/order/order', success: function (e) { var page = getCurrentPages()[0]; if (page == undefined || page == null) return; page.ceshi(); } }); ``` [^3] ### 在success回调中手动调用onLoad方法并传参 在uni.switchTab的success回调中,获取当前页面实例并手动调用onLoad方法,同时可以传入需要的参数,示例代码如下: ```javascript uni.showToast({ title: "用户取消付款!", icon: "none", success: () => { setTimeout(() => { uni.switchTab({ url: "../library/library?topIndex=1&subIndex=3", success: (res) => { console.log('跳转成功', res); let data = { topIndex: 1, subIndex: 3 }; let page = getCurrentPages().pop(); if (page == undefined || page == null) return; page.onLoad(data); }, fail: (err) => { console.log('跳转失败', err); } }); }, 1500); } }); ``` [^5]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值