在开发小程序的时候我们总是能遇到各种奇怪的需求,下面我来和大家说一种。
当我们碰到不是跳转页面而是返回上一层的需求时就要用到下列代码。
let pages = getCurrentPages(); //获取当前页面pages里的所有信息。
let prevPage = pages[pages.length - 2]; //prevPage 是获取上一个页面的js里面的pages的所有信息。-2 是上一个页面,-3是上上个页面以此类推。
prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
id: this.data.orderInfo.id
})//上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。
//最后就是返回上一个页面。
wx.navigateBack({
delta: 1, // 返回上一级页面。
success: function() {
console.log('成功!')
}
})
小程序有三种跳转页面的方法,分别是:
- wx.navigateTo
- wx.redirectTo
- wx.switchTab
下面我先来详细介绍一下这三个跳转页面的不同:
wx.navigateTo:保留当前页面,跳转到小程序内的某个页面,但是不能跳到tabbar设置的
页面。
wx.redirectTo:关闭当前页面,跳转到应用内的某个页面,但是不允许跳转到 tabbar设置的
页面。
wx.switchTab:跳转到tabBar页面,并关闭其他所有tabBar页面。
这三种跳转页面的方法传参也都是需要在地址后面以‘?’拼接。
wx.navigateTo({
url: '../digitalkeyboard/digitalkeyboard?去另一个页面要用来获取的参数名=' + 需要传参的变量或值
})
wx.redirectTo({
url: '../digitalkeyboard/digitalkeyboard?去另一个页面要用来获取的参数名=' + 需要传参的变量或值
})
wx.switchTab({
url: '../digitalkeyboard/digitalkeyboard?去另一个页面要用来获取的参数名=' + 需要传参的变量或值
})