微信小程序有多种页面跳转以及传值方式。
官方给出了navigateTo / redirectTo / switchTab / navigateBack / reLaunch ,这五种方式,其中navigateTo这个我有一篇博文中有讲到。我们今天就讲讲这个switchTab,剩下几个,后面在进行讲解。
我们还是按照惯例,查看官方的文档,这里提到,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,也就是使用了其他方式跳转的页面会被关闭,直接打开tabBar 页面,这里还有一个坑就是路径后面不能带参数,等下我们着重解决这个传值问题。
方式一:全局参数(推荐)
在app.js中定义全局参数
globalData: {
userInfo: null,
categoryInfo:{
categoryId:'',
categoryName:''
}
}
在调用的页面
var categoryInfo = getApp().globalData.categoryInfo;
//赋值
categoryInfo.categoryId = categoryId;
categoryInfo.categoryName = categoryName;
跳转的页面
that.setData({
categoryId : categoryInfo.categoryId,
category : categoryInfo.categoryName
})
方式二:本地数据缓存方式(不推荐)
wx.setStorage(同步缓存)
wx.setStorageSync(异步缓存)
这里不推荐这种方式的原因是缓存数据可能会出现问题。