在微信官方文档中有这么一个方法: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>