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

  },
相关推荐
结网的兔子5 小时前
【前端开发】Web端迁移至 uni-app 及鸿蒙扩展方案对比
前端·uni-app·harmonyos
2501_915909065 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
AI多Agent协作实战派8 小时前
AI多Agent协作系统实战(二十八):顶栏统一战争——从1个页面异常到31个页面全量对齐
数据库·人工智能·uni-app
00后程序员张8 小时前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
2501_916008891 天前
iOS IPA文件反编译与打包操作方法,拆包分析防护和加固打包
android·macos·ios·小程序·uni-app·cocoa·iphone
name好难取诶1 天前
通过对云基座和离线基座的对比,帮助开发者理解如何在不同场景下选择合适的打包方案。 什么是“基座” 在 UniApp 中,基座(也称“ ...
开发语言·uni-app·php
2501_915921431 天前
iOS手游安全反外挂解决方案:基于Xcode的加固混淆特色详解
android·安全·ios·小程序·uni-app·iphone·xcode
2501_916007471 天前
iOS App分发教程 App Store、TestFlight 与 Ad Hoc 的配置与上传方法
android·ios·小程序·https·uni-app·iphone·webview
qq_316837751 天前
uniapp 打包APP 使用 Galacean Effects 的特效
uni-app
古韵2 天前
你的 uni-app 分页,一个 hook 搞定竞态和加载
javascript·vue.js·uni-app