当前位置: 首页 > news >正文

uniapp中使用uni.$emit和uni.$on在vue和nvue页面之间传值但是无法赋值的问题

背景:我们在vue页面和nvue页面之间进行传值可以使用uni.$emit和uni.$onsh事件监听实现,官网描述:uni-app官网 (dcloud.net.cn)icon-default.png?t=O83Ahttps://uniapp.dcloud.net.cn/api/window/communication.html#emit

 而且官网上也明确说明了:

一、问题:vue页面->nvue页面传值无法赋值

在使用这个的时候碰到了问题,就是说vue页面->nvue页面传值,在nvue页面无法通过this.xxx=data这样赋值给nvue页面的data数据,很奇怪。

二、解决:

2.1设置延迟

在vue页面:(在这个页面设置延迟)

在nvue页面:

2.2设置参数在本地缓存main.js里面

但是一有这个情况不可能全放进去,不太现实

2.3嵌套使用

思路:在你使用emit的页面使用1个on嵌套 然后去你想on接收的页面触发上面1个on的事件(这个方法是网上找的,大佬说可以实现,我没试过。)

onUnload() {uni.$off('need');
},
methods: {price: function(id) {uni.$on('need',()=>{uni.$emit('price', {msg:'传参' })});}
}onLoad() {uni.$on('price',(res)=>{this.msg = res.msg;});uni.$emit('need');
},
onUnload() {uni.$off('price');
}

补充:在研究这个情况的时候,曾一度以为是this指向出现问题,其不再指向当前Vue

实例而是指向别处导致无法赋值,如果上面的方法不行可以看看是否this指向问题。

三、nvue页面->vue页面传值

没有测试,但网上查到有说直接接可以正常显示传递的数据

四、nvue页面->nvue页面传值

自己使用可以正常传递并赋值


http://www.mrgr.cn/news/24347.html

相关文章:

  • 面试官:说说你对keep-alive的理解是什么?
  • Python设计模式实战:开启软件设计的精进之旅
  • Windows安装docker
  • LLM大模型基础入门:从头开始编写LLM代码
  • 责任划分不清导致工作冲突,项目困局如何解?
  • 瑞芯微RK3568鸿蒙开发板OpenHarmony系统修改cfg文件权限方法
  • 【高并发设计】系统三高是哪三高,高并发,到底QPS达到多少才算高并发,多大的并发才算是高并发,今天我们来简单聊聊
  • UEFI基础概念2——Handle和Protocol
  • 实战千问2大模型第二天——Qwen2-VL-7B(多模态)的部署和测试
  • uniapp业务实现
  • Redis_RDB持久化
  • CAN集线器(工业级、隔离式)
  • 易基因:Adv Sci:ACE等揭示产前不良环境暴露通过DNA羟甲基化变化介导子代自闭症|国人佳作
  • Redis基础,常用操作命令,主从复制,一主两从,事务数据库操作
  • 骨传导耳机哪款品牌最值得入手?精选五款热门品牌骨传导耳机分享
  • 华为 HCIP-Datacom H12-821 题库 (16)
  • 基于SpringBoot+Vue的学生成绩管理系统
  • 7-8 h0118. 最大公约数
  • 7-1 最大子列和问题
  • Vue day-06