小程序的页面跳转API像wx.navigateTo()、wx.redirectTo()之类的,都是跳转到一个全新的页面,当这个页面是表单的时候,有时候需要跳转到其它页面选取信息后再跳转回来,那之前填的信息就必须得存在,这个时候可以当跳转到选择信息的页面,选中信息后设置设置上一页的data,然后再返回到上一页,这样数据都会存在。
方法一
把当前页面数据放入本地缓存( wx.setStorage(wx.setStorageSync),上一个页面再从缓存中取出(wx.getStorage(wx.getStorageSync))同时退出登录时要清除缓存(wx.clearStorage(wx.clearStorageSync))。
方法二
- 在当前页设置上一页的data,例如
- var pages = getCurrentPages(); // 获取页面栈
- var currPage = pages[pages.length - 1]; // 当前页面
- var prevPage = pages[pages.length - 2]; // 上一个页面
- prevPage.setData({
- mydata: {a:1, b:2} // 假数据
- })
当然这个“mydata”必须是上一页有的数据才行
返回上一页的数据为:
- wx.navigateBack({
- delta: 1
- })
2、直接调用方法名来更新数据 页面A
- Page({
- data: {
- name: ''
- },
- ...
- ,
- //更新name
- changeData: function(name){
- tShopfas.setData({
- name: name
- })
- }
- })
页面B,假设有一个文本框用于输入姓名,点击返回按钮后更新页面A的name
- Page({
- //此方法用于文本框输入回调
- inputTyping: function (e) {
- //获取页面栈
- var pages = getCurrentPages();
- if(pages.length > 1){
- //上一个页面实例对象
- var prePage = pages[pages.length - 2];
- //关键在这里
- prePage.changeData(e.detail.value)
- }
- }
- })
这样就可以实现数据传递给上一个页面,要注意页面A必须使用wx.navigateTo跳转到页面B,不能使用wx.redirectTo,这样会关闭上一个页面,导致页面B无法获取上一页Page实例。
方法三 在app.js中设置全局变量,当前页赋值,上一页取之
方法为
- globalData: {
- userInfo: null,
- }
注意:方法一,方法三,都需要重新刷新页面数据所走方法为:
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- },
第二部分:如何开通一个小商店
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
****更多行业产品开发方案,请关注jsudo加速度 https://www.jsudo.com***
【加速度jsudo(www.jsudo.com)】是国内知名企业数字化建设提供商,为企业提供电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售等)、智慧园区建设、数字化营销、人才外包等服务,点击这里查看了解更多行业解决方案。