【小程序开发】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界面发射刷新事件。问题就解决了。

相关推荐
IT_陈寒36 分钟前
Vite打包后的路径问题差点让我改了一天代码
前端·人工智能·后端
禅思院39 分钟前
前端部署“三层漏斗”完全指南:从CI/CD到自动回滚的工程化实战【基石】
前端·架构·前端框架
黄林晴1 小时前
AI时代终端窗口堆成山?这款工具让我爱不释手
前端
铁皮饭盒1 小时前
Bun 多线程有多快?postMessage 传输字符串比 Node.js 快 400 倍!
前端·javascript·后端
橙子家10 小时前
浏览器缓存之【身份与会话管理】:Cookies 和 Private state tokens
前端
最新资讯动态11 小时前
HDC 2026 | 对话鲸鸿动能:存量时代,品牌如何夺回营销“主动权”?
前端
最新资讯动态11 小时前
游戏出海,从产品走向体系
前端
最新资讯动态11 小时前
20人团队跑出百万DAU、大厂也来抢量:谁在鸿蒙生态跑出加速度
前端
最新资讯动态12 小时前
千万开发者背后,鸿蒙商业化的B面
前端
爱勇宝14 小时前
AI 时代:智商决定起点,情商决定走多远
前端·ai编程