微信支付页面返回情况
原创1.返回上一页 beforePage
返回页面的同时刷新数据
var pages = getCurrentPages(); //当前页面
var beforePage = pages[pages.length - 2]; //前一页
wx.navigateBack({
success: function () {
beforePage.onLoad(); // 执行上一页onLoad方法
}
});
二、回退 3 级页面 wx.navigateBack
当我们的页面跳转到第三级页面时,单击左上角的返回按钮可以直接返回到主页。
-
wx.navigateBack 此方法可以返回到接口。 在 onUnload 可以在触发时执行。但是,我发现这个方法确实可以返回首页,但他会一个接一个地返回界面,不能直接返回首页。
onUnload:function(){ wx.navigateBack({ delta: 3 }) }
-
正常 A -> B -> C 都是通过 wx.navigateTo 跳,所以 wx.navigateBack 如果要返回,则只能返回到上一个界面A 将出现该界面 C -> B -> A 的效果。
如果你想实现 A -> B -> C 当 C 当您单击返回时, 实现直接 C -> A 这种效果只能是 A -> B 通过 wx.navigateTo 跳转 B -> C 通过 wx.redirectTo 跳跃,跳跃后触发器 B 这一页将被销毁,C 页面再次返回。 wx.navigateBack 会直接去 A 了。wx.redirectTo({ url: url })
三、回退 4 级别或更多页面,wx.reLaunch
onUnload() {
console.log(返回按钮)
wx.reLaunch({
url: ../../pages/index
})
}
4.返回多级页面,同时刷新
例如,我们现在希望在返回主页后刷新第四级页面。我们需要 onShow 方法调用 onLoad() 方法
-
需要将页面带进来
onShow() { this.onLoad({ uid: this.$parent.globalData.enterid }) }
-
不需要包括该页面
onShow() { this.onLoad() }
5.带参数返回上一页
-
当前页面
var pages = getCurrentPages(); //当前页面 var prevPage = pages[pages.length - 2]; //上个页面 // 直接分配给上一页 prevPage.setData({ params: this.data.params });
wx.navigateBack({ delta: 1 })
-
要跳转的页面
data: { params: null, },
onShow: function () { let pages = getCurrentPages(); let currPage = pages[pages.length - 1]; // 为所携带的参数赋值 this.setData({ params: currPage.data.params, }); }
经过测试,发现只有在 data 参数是在中定义的,不是写入的 onShow() 方法,您还可以获取从上一页传递的值。
6.对于携带不同参数的情况,最好不要跳转带参数的页面,最好使用全局变量。
比如:
从 A 页面到 B 页面皮带的对象 a = {name: 小明, age: 18}
从 C 页面到 B 页面皮带的对象 c = {pname: 小红, page: 17}
像这样的对象内部的字段名称是不同的,B获取对象后无法解析该页。
定义全局变量 e ,在 A 在页面中跳转之前设置
this.$parent.globalData.e.name = a.name;
this.$parent.globalData.e.age = a.age;
wx.navigateTo({
url: B
})
定义全局变量 e ,在 C 在页面中跳转之前设置
this.$parent.globalData.e.name = c.pname;
this.$parent.globalData.e.age = c.page;
wx.navigateTo({
url: B
})
在 B 页面 onLoad() 方法中的价值
this.obj = this.$parent.globalData.e,
console.log(obj.name);
console.log(obj.age);
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除