uni-app修改上一级页面参数的几种方式

一:当前页修改

(1):首先获取页面栈实例

let pages = getCurrentPages()

(2):当前页页面实例

let nowPage = pages[pages.length - 1]; // 当前页的实例
let prevPage = pages[pages.length - 2];// 上级页面实例

(3):修改数据

prevPage.$vm.['上级页面中的参数'] = null; // 对上级页面参数赋值

(4):返回上级页面

// 返回上级页面的多级参数
uni.navigateBack({  
    delta: 1, //uni.navigateTo跳转的返回,默认1为返回上一级,也可返回多级页面
});
this.$Router.navigateBack(); // 返回上级页面
this.$router.go(-1); // 返回上级页面

二:返回上级页面修改(uni-$on)

(1):页面跳转之前通过uni-$on注册事件

uni.$on('两个页面约定的方法', (res) => {
  console.log('res')
  this.backPageFn(res); // 返回页面触发方法,可以修改页面参数
}) ;

并在跳转页面返回之前提交emit

uni.$emit('两个页面约定的方法', data);

就可以在页面返回后,触发backPageFn()方法里修改页面参数

三:通过全局状态管理(globalData)

在App.vue中可以通过globalData做全局状态管理,可以通过globalData做一个状态共享,在页面返回之前修改globalData中的值,在返回页面的onShow中再去获取一遍globalData中的数据。

四:通过vuex

vuex全局状态管理就不赘述了,一般这个用的最多,状态修改也能追踪到,也最简单。

注:还有很多比如:(本地缓存,服务器缓存,公共bus)等方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值