这里是首页
uni.$emit('test', {test: 123});
uni.navigateTo({
url: /pages/test/index.vue
})
这里是pages/test/页面
onLoad(){
uni.$on('test', (data) => { this.test = data.test; })
}
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 10.15.5
HBuilderX类型: 正式
HBuilderX版本号: 2.8.3
第三方开发者工具版本号: 2006090
基础库版本号: 2.12.0
项目创建方式: HBuilderX
这里是首页
uni.$emit('test', {test: 123});
uni.navigateTo({
url: /pages/test/index.vue
})
这里是pages/test/页面
onLoad(){
uni.$on('test', (data) => { this.test = data.test; })
}
无
无
只要是在当前页$emit触发新打开页面onLoad里面使用「uni.$on」就无法把传过来的数据赋值到data里面去,如果是已打开的页面再监听新页面传过来的$emit就没问题
3 个回复
chenli
打开新页面就可以直接带Url参数过去,新页面onload(options) {// options就是带过来的参数}
使用uni.$emit,前提要有对应的uni.$on监听已经注册了才可调用。
1***@qq.com - uniapp菜鸟
this.setTimeout(()=>{
uni.$emit('sendPageData',data)
}, 500);
设置延时
ddpapa
设置延时的确可以成功传数据,但是subNvue在接收到vue的数据后也会延迟显示
2021-10-20 15:14
9***@qq.com
出现了同样的问题。还没找到原因,在另外的页面也是这样使用的没有出现问题。