欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 小程序——带参返回上一页几种方法

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:739

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:497

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

发布时间:2020-10-19  

小程序的页面跳转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){

this.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 () {