0


干货,在uniapp项目中使用uni.navigateBack()方法返回上一页或多页时携带参数的方法!

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

本文转载自: https://blog.csdn.net/weixin_61243175/article/details/126928178
版权归原作者 徐飞不会喝酒 所有, 如有侵权,请联系我们删除。

“干货,在uniapp项目中使用uni.navigateBack()方法返回上一页或多页时携带参数的方法!”的评论:

还没有评论