• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序之更新上一页数据(十二)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

小程序开发过程中经常有这种需求,需要把当前页面数据传递给上一个页面,但是wx.navigateBack()无法传递数据。

一般的办法是把当前页面数据放入本地缓存,上一个页面再从缓存中取出。

除此之外还有一种办法,巧妙利用页面栈。

getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

重点就在这里,在当前页面拿到上一个页面的实例对象,然后调用该对象的方法完成数据传递。

页面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实例。

你也可以关注我的微信公众号『ITNotes』, 一起交流学习 。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序更新机制发布时间:2022-07-18
下一篇:
监听微信小程序版本更新,并提示更新发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap