uniapp onLoad生命周期 uni.$on接受参数无法改变data数据解决办法

问题阐述:

javascript 复制代码
a: uni.$emit('name',data)
 uni.navigateTo({url:b})


b:onload(){
uni.$on('name',(res)=>{
this.name=res
console.log(this.name)
})

}

用以上写法来跨页面传参会发现在b页面,虽然能够接受到参数但是赋值到data时候没生效,虽然控制台能够打印出数据,但是页面上面并不会动态改变。用setTimeout包裹也没有用

如果想要用emit和 on来跨页面传参,只适合以下情况

javascript 复制代码
a页面->b页面 
a页面$on('name',()=>{
setTimeout(()=>{})
})  b页面$emit
也就是说$on监视器声明一定要在触发前才能用

解决方法

如果想要实现a->b传值可以这样

javascript 复制代码
a: uni.navigateTo({
        url: url,
        success: (res) => {
          res.eventChannel.emit("data", data);
        },
      });
b:  onLoad() {
    const eventChannel = this.getOpenerEventChannel();
    eventChannel.on("data", (res) => {
    
    });

  },
相关推荐
xx24064 小时前
UniApp学习笔记
uni-app
七七小报8 小时前
uniapp-商城-36-shop 购物车 选好了 进行订单确认2 支付方式颜色变化和颜色滤镜filter
uni-app
lh_12548 小时前
uniapp 常用开发技巧与实战指南
uni-app
某公司摸鱼前端9 小时前
uniapp 仿企微左边公司切换页
前端·uni-app·企业微信
WKK_9 小时前
uniapp自定义封装tabbar
前端·javascript·小程序·uni-app
晨集9 小时前
Uni-App 多端电子合同开源项目介绍
java·spring boot·uni-app·电子合同
盛夏绽放13 小时前
uni-app中获取用户实时位置完整指南:解决权限报错问题
uni-app·notepad++
xixixin_13 小时前
【uniapp】vue2 搜索文字高亮显示
java·服务器·前端·uni-app·交互·文字高亮
一夜枫林19 小时前
uniapp自定义拖拽排列
前端·javascript·uni-app
良艺呐^O^20 小时前
uniapp实现app自动更新
开发语言·javascript·uni-app