uni-app开发中返回上一个页面传参

uni-app返回上一级

原因:虽然uniapp跳转方式可以用vue中params和query方式,但是在有一些页面我们需要返回上一个页面,是返回一个页面如果我们用$retouer.push()方法会跳转一个新页面,导致在下程序中返回其他页面需要返回好几次,uniapp官网上用uni.navigateBack({delta: 1})中间的参数是返回上几层页面,但是官网没有给传参的方法。下面记录一种方法

在一个B页面,需要返回上一级A页面
//这个是写在小程序中的methods中的函数
Backhaul(name, plate, carid) {
				let car_name = name;
				let car_plate = plate;
				let car_id = carid;
				uni.setStorageSync('car_name', name); 
				uni.setStorageSync('car_plate', plate); 
				uni.setStorageSync('car_id', car_id); 
				//从这里开始为传参所需要的代码
				let pages = getCurrentPages();//获取页面实例
				let nowPage = pages[pages.length - 1];//当前页面实例
				let prevPage = pages[pages.length - 2];//上一级页面实例
				console.log('qqq', pages, nowPage, prevPage)
				let carobj = {
					flag: 1, //代表从选择门店返回
					car_id,
					car_name,
					car_plate,
					showKu: true
				}
				//在这个地方向上一个页面的实例的函数传递一个参数
				//Backcardaa函数是A页面中封装的函数
				prevPage.$vm.Backcardata(carobj)
				uni.navigateBack({
					delta: 1
				})
			},

A页面,从B页面返回的页面

//这个函数是写在A页面的methods中
Backcardata(carobj) {
				let that = this;
				let car_obj = carobj;//这个地方可以不写 下面直接用 carobj,我是因为其他原因替换一下
				// console.log("1111");
				// console.log(carobj);
				//这个地方先判断传递过来的参数有没有内容
				if (car_obj) {
					console.log('这是传递过来的车辆信息',
						car_obj);
					let CarName = car_obj.car_name;
					let CarPlate = car_obj.car_plate;
					that.carName = CarName;
					that.carPlate = CarPlate
				} else {
					that.carName = uni.getStorageSync('car_name');
					that.carPlate = uni.getStorageSync('car_plate');
				}

			},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值