解决小程序wx.navigateBack,wx.switchTab传参问题!!!
今天在小程序项目开发中,涉及到路由跳转传参,搞得我是一头雾水,查了查官方文档原来wx.navigateBack,wx.switchTab 不能传参,
呵呵,规矩是死的,人是活的,我就是喜欢游走在法则的边缘,所以搜集了各种资料总结如下
首先先介绍一下官方文档中小程序的路由跳转方法以及规定的传参方式
wx.switchTab({
url: '/pages/home/home'
})
wx.reLaunch({
url: '/pages/home/home?id=1'
})
wx.redirectTo({
url: '/pages/home/home?id=1'
})
wx.navigateTo({
url: '/pages/home/home?id=1'
})
wx.navigateTo({
url: '/pages/home/home?id=1'
})
wx.navigateTo({
url: '/index/index/index?id=1'
})
wx.navigateBack({
delta: 2
})
接下来说重点wx.navigateBack,wx.switchTab传参问题!!!
wx.navigateBack,wx.switchTab不能像其他导航一样通过url传参
但是有三种方法可以解决
1、将数据存到app.globalData中,然后返回上一页面从全局数据中获取
2、将数据存到本地缓存中get.localStorage,然后从缓存中获取
3使用getCurrentPages()方法解决wx.navigateBack传参
var pages = getCurrentPages();
var currPage = pages[pages.length - 1];
var prevPage = pages[pages.length - 2];
prevPage.setData({
data:data
});
wx.navigateBack({
delta: 1
})