【小程序开发】TypeError: _this4.getOpenerEventChannel(...).emit is not a function 问题解决

使用uni-app+vue2开发微信小程序时遇到一个界面之前传参的问题。想实现的逻辑是界面返回并通知前一个界面刷新。代码如下:

javascript 复制代码
GroupManager.getInstance().addGroupRemote(this.createGroupModel(), () => {
	uni.hideLoading()
	uni.showToast({
		icon: "success",
		title: "保存成功"
	})
	this.getOpenerEventChannel().emit("refreshGroup")
	uni.navigateBack()
}, e => {
	uni.hideLoading()
	uni.showToast({
		icon: "error",
		title: "保存失败"
	})
})

结果运行的时候报错:TypeError: _this4.getOpenerEventChannel(...).emit is not a function

网上查也没发现什么线索,后来想了很久才意识到我要返回的界面并不是跳转过来的上一个界面。整个跳转逻辑是:界面A跳转到界面B,界面B重定向到界面C,然后界面C返回界面A。

javascript 复制代码
uni.redirectTo({
	url: `/pages-group/pages/group-detail/index?isEdit=false&groupType=${item.groupType}&floorId=${this.floorId}&roomId=${this.roomId}`,
})

中间的界面B在跳转界面C的时候以及从栈中推出,而这个getOpenerEventChannel我猜是会从上一个直接跳转过来的界面(界面B)中找事件通道,自然是找不到的。

最后把redirectTo改成了navigateTo,C界面先返回到B界面,B界面再向A界面发射刷新事件。问题就解决了。

相关推荐
前端互助会16 小时前
Live2D形象展示与文本语音播报:打造生动交互体验的完整实现
前端·vue.js·microsoft·交互
游戏开发爱好者817 小时前
iOS IPA 上传工具全面解析,从 Transporter 到开心上架(Appuploader)命令行的高效上架实践
android·ios·小程序·https·uni-app·iphone·webview
努力的小郑18 小时前
今晚Cloudflare一哆嗦,我的加班计划全泡汤
前端·后端·程序员
Kisang.19 小时前
【HarmonyOS】性能优化——组件的封装与复用
华为·性能优化·typescript·harmonyos·鸿蒙
武昌库里写JAVA19 小时前
微擎服务器配置要求,微擎云主机多少钱一年?
java·vue.js·spring boot·后端·sql
dy171719 小时前
el-table表头上下显示内容
javascript·vue.js·elementui
q***649719 小时前
头歌答案--爬虫实战
java·前端·爬虫
凌波粒19 小时前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax
液态不合群20 小时前
DDD驱动低代码开发:从业务流程到领域模型的全链路设计
前端·低代码·架构·ddd
jonyleek20 小时前
JVS低代码开发中,如何创建自定义前端页面并接入到现有系统中,从创建到接入的全攻略
前端·低代码·前端框架·软件开发