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');
				}

			},

猜你喜欢

转载自blog.csdn.net/m0_45884629/article/details/129799418