uni-app 返回上一个页面并传递参数(微信小程序)

这篇具有很好参考价值的文章主要介绍了uni-app 返回上一个页面并传递参数(微信小程序)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uni-app 返回上一个页面并传递参数(微信小程序)

方法一:

// 第一个页面
onShow() {
	let that = this
	uni.$on('getuser',function(data){
		console.log('监听到事件来自返回的参数:' , data);
	})
},


// 第二个页面
methods: {
	confirm(e) {
		let userinfo = {
			avatarUrl: "123456",
			nickName: 'Function'
		}
		uni.$emit('getuser', userinfo)
		uni.navigateBack()
	}
}

方法一 问题:
会记住每次返回. 并在下次获取参数时把所有的返回监听进行 全部返回 ( 不确定别人使用时是否会出现此问题 )

打印示例结果如下:

uni-app 返回上一个页面并传递参数(微信小程序)

打印说明:

  1. 获取用户信息1: 为每次进入第二个页面 (onload) 请求的数据
  2. 监听到事件来自返回的参数: 为第一个页面监听获取的数据

方法二:

// 第一个页面
onShow() {
	let that = this	
	let pages = getCurrentPages();
	let currPage = pages[pages.length - 1]; //当前页面
	let json = currPage.data.userinfo;
	console.log('监听到',json);
},


// 第二个页面
methods: {
    // 第一个事件
	confirm(e) {
		let userinfo = {
			avatarUrl: "123456",
			nickName: 'Function'
		}
		var pages = getCurrentPages();
		var prevPage = pages[pages.length - 2];
		// #ifdef H5
		prevPage.$vm.userinfo = userinfo;
		// #endif
		// #ifdef MP-WEIXIN
		prevPage.setData({
			userinfo
		});
		// #endif
		uni.navigateBack()
	},
	// 第二个事件
	confirm1(e) {
		let userinfo = {
			avatarUrl: "123456",
			nickName: 'func'
		}
		var pages = getCurrentPages();
		var prevPage = pages[pages.length - 2];
		// #ifdef H5
		prevPage.$vm.userinfo = userinfo;
		// #endif
		// #ifdef MP-WEIXIN
		prevPage.setData({
			userinfo
		});
		// #endif
		uni.navigateBack()
	}
}
// 注意: 
// prevPage.setData({
//  	userinfo
// });
// 需要使用{} 大括号将数据(userinfo)框起来 否则 第一个页面let json = currPage.data.userinfo;将会获取不到
// 需要使用 let avatarUrl= currPage.data.avatarUrl; let nickName= currPage.data.nickName;来获取数据

方法二 问题:
进入页面会 立即 返回参数 (生命周期onshow的原因) , 如果不使用confirm事件 ‘存储’ ( 是的 , 感觉用 “存储” 这个词是合适的 ) , 返回的参数将会一直是undefined. 直到使用comfirm事件进行 ‘存储’ 一次, 那么每次返回的都会是comfirm 事件存储的参数 ( 包括直接使用uni.navigateBack()进行返回、原生的导航栏返回 ) , 除非使用第二个事件comfirm1方法进行修改覆盖, 那么再返回的将会获得comfirm1存储的值.

打印示例结果如下:

uni-app 返回上一个页面并传递参数(微信小程序)

打印说明:
一、获取用户信息1: 为每次进入第二个页面 (onload) 请求的数据
二、
标注1: 返回的参数: 首次进入第一个页面(onshow) 立即获取的数据;
标注2: 返回的参数: 第二次进入第二个页面后 , 未进行 ‘存储’ (comfirm事件), 然后使用uni.navigateBack()、原生的导航栏返回后, 第一个页面(onshow)获取到的数据;
标注3: 返回的参数: 再次进入第二个页面后 , 进行第一次 ‘存储’ (comfirm事件)返回, 第一个页面(onshow)获取到的数据;
标注4: 返回的参数: 再次进入第二个页面后 , 进行 ‘存储’ (comfirm事件) , 直接使用uni.navigateBack()、原生的导航栏返回后, 第一个页面(onshow)获取到的数据;
标注5: 返回的参数: 再次进入第二个页面后 , 进行第二次 ‘存储’ (comfirm1事件)返回, 第一个页面(onshow)获取到的数据;
标注6: 返回的参数: 再次进入第二个页面后 , 进行任何 ‘存储’ 事件 , 直接使用uni.navigateBack()、原生的导航栏返回后, 第一个页面(onshow)获取到的数据;文章来源地址https://www.toymoban.com/news/detail-486612.html

到了这里,关于uni-app 返回上一个页面并传递参数(微信小程序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app——使用uni.navigateTo传递对象参数

    文章目录 一、 传递一般参数 二、 传递对象参数 1. 传递参数 2. 接收参数 navigateTo进行页面传递参数,在下一个页面接收数据,一般在在onLoad钩子函数中获取

    2024年02月13日
    浏览(57)
  • uni-app(微信小程序) 根据小程序页面路径(可带参数) 生成二维码、分享码

    微信官方文档 小程序 看文档点这里 第一个获取小程序码,就是根据你要通过二维码打开的页面路径生成一个小程序码,且这个小程序码是永久的 其实文档内也说明了,很少用到。即使需要生成这样的小程序码,可以去微信公众平台的小程序管理后台生成,还方便。 调用方

    2024年02月06日
    浏览(57)
  • H5向uni-app小程序传递参数

    1.script src=\\\"https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js\\\"/script 本地下载包引入也可以。  2.传递参数。 3.接收参数。 @message=\\\"handleMessage\\\"   获取当前数据是一个数组,每次获取让数组长度-1就是你需要的数据。

    2024年02月13日
    浏览(49)
  • uni-app 如何返回到指定的页面

    实际开发中,发现了一个问题,即使签署合同的时候,发现调用法大大的页面,出现了一个问题,就是签署后,点回退,回退到了重新签署的页面。所以需要对回退进行自定义处理。 处理的话,就要到指定的返回页面。这里还存在不签署的情况,回退要是原来的页面。所以要

    2024年01月18日
    浏览(59)
  • uni-app: onBackPress() 监听页面返回 - 更新数据

    生命周期 - onBackPress() 监听页面返回 函数名 说明 平台差异说明 onBackPress 监听页面返回 ,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解。支付宝小程序只有真机

    2024年02月11日
    浏览(53)
  • uni-app 实现navigateBack返回修改前一页面数据(H5、APP、小程序)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新Web前端全套学习资料》,

    2024年04月29日
    浏览(59)
  • uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)

    切换页面刷新:通过onShow()便可实现 返回上一页通过uni.navigateBack({delta: 1});实现 以返回上一页刷新为例 在A页面写入方法refreshHandler() 在A页面写入onLoad(),onShow()  onLoad(): 首次进入页面时执行的方法,这里直接引入refreshHandler() 可以直接查询到页面数据 onShow(): 进入页面执行

    2024年02月15日
    浏览(54)
  • uni-app微信小程序隐藏左上角返回按钮

    官方文档链接:uni.setNavigationBarTitle(OBJECT) | uni-app官网 (dcloud.net.cn) 首先要明确的是页面间的跳转方式有几种、每一种默认的作用是什么。  uniapp五种跳转方式  使用2、4种跳转方式使用;

    2024年04月26日
    浏览(42)
  • 关于uni-app微信小程序监听顶部左上角的返回事件

    在项目上返回上一级的时候需要清空vuex里的数据,使用了onBackPress无效。 查看官方文档后才发现onBackPress对微信小程序无效。  然后我发现了另一个生命周期——onUnload 完美解决!!!

    2024年02月08日
    浏览(49)
  • uni-app 微信小程序 保存当前页面为图片

    由于在微信小程序环境下面没法获取dom,很多方法都很难去实现保存html结构的页面,比较有效的#painter 可以不需要操作dom,但是那玩意儿和重新用js写个页面一样,简单的页面还好,复杂的,元素比较多的就很麻烦,所以考虑用webview+html2canvas来完成 先说一下思路,既然在微

    2024年02月11日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包