uniapp中回退到上一页面并触发函数的方法

需求:当前页面调用接口成功后需要返回上一页面并调用函数

当前页面

 在 onLoad 生命周期中将 getOpenerEventChannel() 方法挂载到赋值给 this.eventChannel

onLoad() {
	this.eventChannel = this.getOpenerEventChannel();
},

在调用接口成功后使用 emit 去调用刷新方法

setTimeout(() => {
	uni.navigateBack({
		delta: 1
	});
	// 利用this.getOpenerEventChannel().emit('参数') 方法去调用 uni.navigateTo() 中的 events
    // 参数就是上一页面 events 中的方法名
    // 刷新上一页面
    this.eventChannel.emit("refreshPage");
}, 1000);

上一页面

// 点击修改邮箱
handleClickModifyEmail() {
	uni.navigateTo({
		url: `./setting-email/setting-email?userId=${this.userInfoData.id}&userEmail=${this.userInfoData.fEmail}`,
	    events: {
	       refreshPage: () => {
            // 调用页面获取列表接口
            // 方法中的参数表示是否要重置data
		    this.fnGetUserInfo(true);
		   },
	    },
    });
},

这样就实现了uniapp中回退到上一页面并触发函数的方法(目的是内层页面修改数据后刷新外层页面数据)

 获取列表的接口

            //获取列表
			fnLoadListData(isClear = false) {
				return new Promise((resolve) => {
					getImplementList({
							key: this.keyword,
						})
						.then((res) => {
							const data = res.data || [];
							if (isClear) {
								this.listData = data;
							} else {
								this.listData = [...this.listData, ...data];
							}
							if (data.length === 0 || data.length < 10) {
								resolve({
									isLoaded: true
								});
							} else {
								resolve({
									isLoaded: false
								});
							}
						})
						.catch(() => {
							resolve();
						});
				});
			},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微光无限

破晓的日子还有很多!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值