uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别

本文主要是介绍uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题:navigateBack()emit事件在onload()监听不到

 从A页面跳转到B页面,在B点击产生数据后,跳转回到A,并告诉A点击的数据是什么,使用:

navigateBack()。

(页面跳转流程: A->B ->A)

B页面:

  toPage() {uni.navigateBack({complete: (res) => {console.log(">>>com ", res)this.getOpenerEventChannel().emit('selecteCust', this.selectCustomer)},success: (res) => {console.log(">>>res", res)// res.eventChannel.emit('testCust', {data: this.selectCustomer})// 打开成功的话, 向打开的页面传递数据,传递的事件名:selecteCustthis.getOpenerEventChannel().emit('selecteCust', this.selectCustomer)}})},

A页面:

eventChannel.on无法监听到B传递过的事件: selecteCust

  onLoad() {// 监听事件this.ec = this.getOpenerEventChannel();console.log(">|--,,,,,,,,,,,eventchannel", this.ec)this.ec.on('testCust', (res) => {console.log("................selecteCust,监听到了", res)})},

官方文档

uni.navigateTo()

 

 uni.navigateBack()

 

分析:当前传递参数方式是下级给上级传递消息,使用navigiateBack()话,要在跳转之后再 

解决:

方式1:navigateBack()改成navigateTo()可以

 onLoad() {// 监听事件this.ec = this.getOpenerEventChannel();console.log(">|--,,,,,,,,,,,eventchannel", this.ec)this.ec.on('testCust', (res) => {console.log("................selecteCust,监听到了", res)this.customer = res.data})},

效果:

方式2: 

 A->B->A, A跳转地方添加监听event

 selectA() {uni.navigateTo({url: '/pages/custList',//   页面跳转回来事件监听events: {selecteCust: (data) => {console.log(">>选中的客户是", data)}})},

区分:uni.$on和eventChannel.on使用推荐

 

两者使用起来其实差不多,都可以达到父传子,子传父的作用。但是因为作用域的原因,evenetChannel在不同页面的变量可以重名,eventChannel更适合父传子,uni.$on适合子传父

官方文档:

uni.navigateTo(OBJECT) | uni-app官网

这篇关于uniapp EventChannel 页面跳转参数事件传递navigateBack,navigateTo 成功后通知事件区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196527

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda