微信小程序返回上一页并携带参数,带参数返回上一页的三种方法总结(图文)
微wx笑 2019-10-12【常见问题】 14 0关键字: 微信小程序
表单页面通常会需要这样的功能,跳转到下一个页面去选择或设置一个选择的值,这就需要在返回的时候把设置的值带回来。
微信小程序返回上一页并携带参数,带参数返回上一页的三种方法总结
表单页面通常会需要这样的功能,跳转到下一个页面去选择或设置一个选择的值,这就需要在返回的时候把设置的值带回来。
一、全局变量
app.js 中声明的 globalData,整个程序可见
//app.js App({ globalData: { userInfo: null, openId: "", appId: "wx2b13bdbb7" }, /** * 根据页面URL、页面栈返回之前打开的页面 */ navigation: function (pageUrl) { var cps = getCurrentPages(); console.log(cps); var delta = 0; for (var i = cps.length - 1; i >= 0; i--) { if ("/" + cps[i].route == pageUrl) { if (delta == 0) { return; } wx.navigateBack({ delta: delta }); return; } delta++; } wx.navigateTo({ url: pageUrl }); } })
二、本地存储
获取数据
var openid = wx.getStorageSync("openid"); var phone = wx.getStorageSync("phone");
保存数据
wx.setStorageSync("openid", res.data.openid); wx.setStorageSync("phone", res.data.phone);
三、页面栈
这是比较方便比较推荐的一种方式
实际应用代码
submit: function (e) { // 返回上一页携带参数 let pages = getCurrentPages(); //获取页面栈 let prevPage = pages[pages.length - 2]; //获取上一页引用 let prevData = prevPage.data.assetList; //获取上一页中的数据 // 。。。具体数据如何处理看你自己了。 // 设置上一页中的数据,也就是把本页的数据传递给上一页 prevPage.setData({ assetList: prevData, }) // 返回上一页 setTimeout(() => { wx.navigateBack({ delta: 1 //想要返回的层级 }) }, 500) },
prevPage.data.assetList 就是上一页 js 文件中定义的数据:
Page({ /** * 页面的初始数据 */ data: { assetList: [ { id: 1, assetName: '图书', num: 16, unit: '本', worth: 1.00, sltNum:0 }, { id: 2, assetName: '电脑', num: 10, unit: '台', worth: 1.00, sltNum: 0 }, { id: 3, assetName: '手机', num: 15, unit: '个', worth: 1.00, sltNum: 0 }, { id: 4, assetName: '笔', num: 19, unit: '个', worth: 1.00, sltNum: 0 }, { id: 5, assetName: '本', num: 6, unit: '本', worth: 1.00, sltNum: 0 }, ], }, }
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/collection/miniprogram/issue/2019-10-12/254.html