带参数返回上一页碰到的场景:
用户A购买商品结算,进入订单页,提示没有收货地址无法支付。用户A触发新增地址事件,跳转到新增地址页面。输入地址相关信息资料后,点击保存按钮,触发提交事件。
网上查到了相关方法,在此简单做个记录。
提交事件的业务逻辑如下:
1、请求后台接口api将新增收货地址数据添加到数据库,后台返回的请求状态码。
2、当返回的状态码是200,表示请求成功,在成功的回调中利用getCurrentPages() 方法获取页面栈, 将上一页需要的数据setData赋值。返回上一页将数据携带过去。
formSubmit: function(e) {
console.log(e)
var that = this
//发送请求
wx.request({
url: 'xxxx.com/api/Address/createAddr',
header: { 'content-type': 'application/json' },
method: 'POST',
data: { ... 需提交的数据 },
success: function(res) {
//console.log(res)
if (res.statusCode == 200) {
wx.showToast({
title: '提交成功',
})
//获取当前页面js里面的pages里的所有信息。
let pages = getCurrentPages()
console.log(pages)
// -1是当前页面, -2是上一个页面,-3是上上个页面以此类推。
let prevPage = pages[pages.length - 2]
// 设置数据 是上一页你想被携带过去的数据,后面是本方法里你得到的数据
prevPage.setData({
address: e.detail.value.address,
name: e.detail.value.name,
phone: e.detail.value.phone
})
//prevPage.onShow()
//返回上一页 这个时候数据就传回去了 可以在上一页的onShow方法里把传过去的数据输出来查看是否已经携带完成
wx.navigateBack({
delta: 1
})
}
},
fail: function(res) {},
complete: function(res) {}
})
}