小程序——带参返回上一页几种方法

小程序的页面跳转API像wx.navigateTo()、wx.redirectTo()之类的,都是跳转到一个全新的页面,当这个页面是表单的时候,有时候需要跳转到其它页面选取信息后再跳转回来,那之前填的信息就必须得存在,这个时候可以当跳转到选择信息的页面,选中信息后设置设置上一页的data,然后再返回到上一页,这样数据都会存在。

小程序——带参返回上一页几种方法

方法一 
把当前页面数据放入本地缓存( wx.setStorage(wx.setStorageSync),上一个页面再从缓存中取出(wx.getStorage(wx.getStorageSync))同时退出登录时要清除缓存(wx.clearStorage(wx.clearStorageSync))。

方法二

 

  1.  
  2. 在当前页设置上一页的data,例如
  3. var pages = getCurrentPages(); // 获取页面栈
  4. var currPage = pages[pages.length - 1]; // 当前页面
  5. var prevPage = pages[pages.length - 2]; // 上一个页面
  6. prevPage.setData({
  7. mydata: {a:1, b:2} // 假数据
  8. })

当然这个“mydata”必须是上一页有的数据才行

返回上一页的数据为:

 

  1.  
  2. wx.navigateBack({
  3. delta: 1
  4. })

2、直接调用方法名来更新数据  页面A

 

  1. Page({
  2. data: {
  3. name: ''
  4. },
  5. ...
  6. ,
  7. //更新name
  8. changeData: function(name){
  9. this.setData({
  10. name: name
  11. })
  12. }
  13. })

页面B,假设有一个文本框用于输入姓名,点击返回按钮后更新页面A的name

 

  1. Page({
  2. //此方法用于文本框输入回调
  3. inputTyping: function (e) {
  4. //获取页面栈
  5. var pages = getCurrentPages();
  6. if(pages.length > 1){
  7. //上一个页面实例对象
  8. var prePage = pages[pages.length - 2];
  9. //关键在这里
  10. prePage.changeData(e.detail.value)
  11. }
  12. }
  13. })

这样就可以实现数据传递给上一个页面,要注意页面A必须使用wx.navigateTo跳转到页面B,不能使用wx.redirectTo,这样会关闭上一个页面,导致页面B无法获取上一页Page实例。

方法三  在app.js中设置全局变量,当前页赋值,上一页取之

方法为

 

  1. globalData: {
  2. userInfo: null,
  3. }

注意:方法一,方法三,都需要重新刷新页面数据所走方法为:

 

  1. /**
  2. * 生命周期函数--监听页面显示
  3. */
  4. onShow: function () {
  5.  
  6. },

 

小程序——带参返回上一页几种方法


【本站声明】
  1、本站文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系。
  2、本网站不对文章中所涉及的内容真实性、准确性、可靠性负责,仅系客观性描述,如您需要了解该类商品/服务详细的资讯,请您直接与该类商品/服务的提供者联系。


KESION 科汛软件

KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。

KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!



▼点击进入科汛官网了解更多



热门标签
SaaS
上/下篇
换一换相关推荐
精选内容
热点精选