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

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

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。

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界面发射刷新事件。问题就解决了。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 07:16:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 07:16:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 07:16:02       45 阅读
  4. Python语言-面向对象

    2024-07-20 07:16:02       55 阅读

热门阅读

  1. 记录贴-idea导入别人的项目

    2024-07-20 07:16:02       14 阅读
  2. 【SpringBoot】分页查询

    2024-07-20 07:16:02       16 阅读
  3. 第九十六周周报

    2024-07-20 07:16:02       14 阅读
  4. Webserver笔记

    2024-07-20 07:16:02       16 阅读
  5. mybatis-sql实战总结

    2024-07-20 07:16:02       17 阅读
  6. Python--正则表达式re模块基础匹配方法

    2024-07-20 07:16:02       16 阅读
  7. 2024-07-19 Unity插件 Odin Serializer1 —— 插件介绍

    2024-07-20 07:16:02       17 阅读
  8. 【多商户自营解决方案】

    2024-07-20 07:16:02       16 阅读
  9. 基于深度学习的股票预测

    2024-07-20 07:16:02       15 阅读
  10. centos(或openEuler系统)安装clickhouse集群

    2024-07-20 07:16:02       14 阅读
  11. 介绍下项目的架构

    2024-07-20 07:16:02       11 阅读