在微信官方文档中有这么一个方法:getCurrentPages()

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

注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误

在日常的实际项目开发中,你想从A页面返回到B页面并且带些参数的时候,例如选择收货地址或自提门店等场景时需要返回。那么此时你可以这样:

1.传递单个数据

let pages = getCurrentPages();  //获取所有页面栈实例列表
let nowPage = pages[ pages.length - 1];  //当前页页面实例
let prevPage = pages[ pages.length - 2 ];  //上一页页面实例
prevPage.$vm.name= 1211;   //修改上一页data里面的name参数值为1211
uni.navigateBack({  //uni.navigateTo跳转的返回,默认1为返回上一级
	delta: 1
});

 

2. 在A页⾯需要传递参数的⽅法内

let pages = getCurrentPages(); // 当前页页⾯实例
let nowPage = pages[pages.length -1]; //当前页⾯实例
let prevPage = pages[pages.length -2]; // 上一页面实例
// 需要返回 上一页的数据 Object
let object ={
	name:'xufei',
	mobile :'1768396xxxx'
};

prevPage.$vm.prevDateFun(object) // 调用上一页 定义的方法

// 返回 上一页
uni.navigateBack({
  delta:1 // 可以不写,默认值为 1
})

 

B页⾯使⽤prevDateFun接受A页⾯的赋值 

<script>
export default{
	data() {
		return {
		    name :'',
		    mobile :''
		}
	},
	 methods:{
		let _this =this
		
		// 方法名,是 B页面 定义的方法名称
		prevDateFun(object) {
			if(object){
			     _this.name = object.name 
			     _this.mobile = object.mobile    
			}else{
				return
			}
		},
	}
</script>

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐