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) => {
    
    });

  },
相关推荐
一个处女座的程序猿O(∩_∩)O25 分钟前
Uniapp 开发中遇到的坑与注意事项:全面指南
uni-app
Elena_Lucky_baby27 分钟前
uniapp 网络请求封装(uni.request 与 uView-Plus)
uni-app
黑云压城After4 小时前
uniapp小程序自定义日历(签到、补签功能)
小程序·uni-app
烂蜻蜓4 小时前
Uniapp 设计思路全分享
前端·css·vue.js·uni-app·html
Elena_Lucky_baby5 小时前
uniapp封装请求
uni-app
尚学教辅学习资料5 小时前
基于SpringBoot+Vue+uniapp的高校招聘小程序+LW参考示例
spring boot·uni-app·招聘系统
岑梓铭8 小时前
uniapp邪门事件
uni-app
漫天绯羽9 小时前
uniapp 中使用天地图,安卓端、h5
uni-app
尚学教辅学习资料10 小时前
基于SpringBoot+vue+uniapp的智慧旅游小程序+LW示例参考
vue.js·spring boot·uni-app·旅游
烂蜻蜓15 小时前
前端已死?什么是前端
开发语言·前端·javascript·vue.js·uni-app