在微信官方文档中有这么一个方法: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参数值为1211uni.navigateBack({//uni.navigateTo跳转的返回,默认1为返回上一级delta: 1});
2.在A页⾯需要传递参数的⽅法内
let pages = getCurrentPages(); // 当前页页⾯实例let nowPage = pages[pages.length -1]; //当前页⾯实例let prevPage = pages[pages.length -2]; // 上一页面实例// 需要返回 上一页的数据 Objectlet object ={name:'xufei',mobile :'1768396xxxx'};prevPage.$vm.prevDateFun(object) // 调用上一页 定义的方法// 返回 上一页uni.navigateBack({delta:1 // 可以不写,默认值为 1})
B页⾯使⽤prevDateFun接受A页⾯的赋值
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}},}