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

背景:我们在vue页面和nvue页面之间进行传值可以使用uni.emit和uni.onsh事件监听实现,官网描述:uni-app官网 (dcloud.net.cn)https://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页面传值

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

相关推荐
普马萨特9 小时前
uni-app x 定位踩坑实录:H5/小程序/App 统一经纬度与逆地理编码
uni-app
Geek_Vison1 天前
保险APP已经用了Flutter,还能接入小程序吗?
flutter·小程序·uni-app·mpaas·小程序容器
郑州光合科技余经理2 天前
本地生活平台搭建:跨业态用户标识怎么贯通
java·开发语言·前端·后端·uni-app·php·ai编程
2501_915909062 天前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
不爱说话郭德纲3 天前
从“点点点”到一键出包:我把 uni-app x Android 离线打包做成了脚本
android·前端·uni-app
snotJam3 天前
关于Uniapp的Android自定义基座使用
android·uni-app
今年下半年4 天前
【微信小程序】uni-app + Vue3 + Vite 的小程序项目实现「进入指定范围才能打卡」的考勤功能
微信小程序·uni-app·定位·考勤
郑州光合科技余经理7 天前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
遗憾随她而去.8 天前
uniApp跨端开发: 解决不同平台显示差异问题
uni-app
程序鉴定师12 天前
2026年深圳小程序/App开发公司技术选型指南:从架构设计到交付标准全维度评估
java·小程序·uni-app·php·objective-c