首页 > 建站教程 > 小程序、公众号 >  wx.switchTab的使用正文

wx.switchTab的使用

    对于switchTab,一开始就以为是简单的切换底部的tab选项卡,仔细看下,其实可以从其他页面切换到tab页,并且关闭其他不相关的页面。这个很重要,必须在page.json中,配置的第一个页面并不是首页,也能是启动页,那么从启动页进来,就不能用普通的navigateTo,因为它打不开带tabbar的页面,其次用navigateTo打开页面,会有返回。下面是简单的总结:

个人总结一下switchTab的使用注意事项
1. 切换到首页tabbar对应的文件,必须使用
wx.switchTab({
    url:'pages/home/index/index'
})
而使用wx.navigateTo是不会跳转到tabbar对应的相关页面的,所以这里写法是错误的
wx.navigateTo({
    url:'pages/home/index/index'
})
2.关于使用switchTab跳转页面 ,页面数据不更新的解决方案
let url = "xx/xx/xx";
wx.switchTab({
    url :  url,
    success(res){
        let page = getCurrentPages().pop();
        if(page == undefined || page == null){
            return
        }
        page.onLoad();
    }
})
3.而针对switchTab不能带参数的解决方案就更容易解决了--------定义app全局变量
首先在小程序项目文件里找到app.js,在APP({})内注册全局变量
globalData: {
       idClassify: null,
},
在需要携带参数的页面.js文件引入app,比如pages/index/index.js
var app = getApp();
在具体方法里使用的时候,进行跳转页面时定义要跳转到的页面的全局变量的当前值
app.globalData.idClassify = 3;
然后再需要接受参数的页面的.js文件引入app
var app = getApp(); //这一点与上面携带参数来的页面使用一样
接着在需要接受参数的页面的.js文件的onLoad方法中获取参数
if(app.globalData.idClassify && app.globalData.idClassify != ""){
    this.setData({
        "page.classify_id":app.globalData.idClassify
    })
 }
if(options.idClassify && options.idClassify != ""){
   this.setData({
            "page.classify_id":options.idClassify
   })
}