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

  },
相关推荐
大叔_爱编程7 小时前
wx015基于springboot+vue+uniapp的经济新闻资讯的设计与实现
vue.js·spring boot·小程序·uni-app·毕业设计·源码·课程设计
fakaifa9 小时前
民宿酒店预订系统小程序+uniapp全开源+搭建教程
前端·小程序·uni-app·php·源码下载
计算机毕设定制辅导-无忧学长11 小时前
UniApp 路由导航详解
java·前端·uni-app
low神11 小时前
Flutter入门,Flutter基础知识总结。
前端·javascript·flutter·react native·uni-app·dart
顽疲16 小时前
从零用java实现 小红书 springboot vue uniapp (7)im 在线聊天功能 关注功能
java·vue.js·spring boot·uni-app
计算机毕设定制辅导-无忧学长2 天前
UniApp 性能优化策略
性能优化·uni-app
AdSet聚合广告2 天前
解锁节日季应用广告变现潜力,提升应用广告收入
flutter·搜索引擎·uni-app·个人开发·节日
澄江静如练_3 天前
微信小程序Uniapp
微信小程序·小程序·uni-app
晓风伴月3 天前
uniapp:微信小程序文本长按无法出现复制菜单
微信小程序·小程序·uni-app
weiweiweb8883 天前
uniapp 打包apk
uni-app