微信小程序开发过程中经常把当前页面数据传递给上一个页面,wx.navigateBack()返回上一页,无法传递数据,页面视图没有响应。其中一个办法就是巧妙利用页面栈。
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
重点:在当前页面拿到上一个页面的实例对象,然后调用该对象的方法完成数据传递。
上一个页面
Page({
data: {
name: ''
},
...
//定义更新name方法
changeData: function(name){
this.setData({
name: name
})
}
})
当前页面:在文本框输入姓名,点击按钮后更新上一个的name文章来源:https://www.toymoban.com/news/detail-504112.html
<view>
<!-- 数据双向绑定 -->
<input model:value="{{value}}"/>
<button bindtap="change">修改name并返回</button>
</view>
Page({
data{
value:''
},
//按钮点击回调函数
change: function () {
//获取页面栈
let pages = getCurrentPages();
//检查页面栈
//console.log(pages);
//判断页面栈中页面的数量是否有跳转(可以省去判断)
if(pages.length > 1){
//获取上一个页面实例对象
let prePage = pages[pages.length - 2];
//调用上一个页面实例对象的方法
prePage.changeData(value);
//返回上一个页面
wx.navigateBack();
}
}
})
注意:页面跳转需要使用wx.navigateTo跳转。文章来源地址https://www.toymoban.com/news/detail-504112.html
到了这里,关于微信小程序返回上一页面并更新的数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!