uniapp使用页面通讯$on $emit跳转页面 页面拿到值 但页面不刷新

您所在的位置:网站首页 页面传参但不跳转 uniapp使用页面通讯$on $emit跳转页面 页面拿到值 但页面不刷新

uniapp使用页面通讯$on $emit跳转页面 页面拿到值 但页面不刷新

2023-06-17 08:23| 来源: 网络整理| 查看: 265

问题出现原因

很简单的需求 我要往下一个跳转的页面传参并且这个参数多 所以我不想在地址栏里面传 然后就在官方找到了它,神奇的事情出现了 值传了页面收到了 然后赋上值了 好!不刷新(不显示且页面没有改变) 解决方法: 1.设置延迟(有效简单好用但是你延迟了发送 那接收也有延迟如果不想这样请使用方法3嵌套)

setTimeout(()=>{ uni.$emit('事件名',{msg:'设置延迟'}) }, 500)

2.设置参数在本地缓存main.js里面但是我tm不可能全放进去啊(有效但不推荐) 3.嵌套使用(有效 感觉这样更好但是我使用了第一种) 思路:在你使用emit的页面使用1个on嵌套 然后去你想on接收的页面触发上面1个on的事件

onUnload() { uni.$off('need'); }, methods: { price: function(id) { uni.$on('need',()=>{ uni.$emit('price', { msg:'传参' }) }); } } onLoad() { uni.$on('price',(res)=>{ this.msg = res.msg; }); uni.$emit('need'); }, onUnload() { uni.$off('price'); }

你需要注意的是如果你没有在emit拿到值 记得试试在外面定义1个let item=this 然后在用item去获取(虽然我感觉大部分不会遇见) 另外在解决这个问题的时候 发现可以直接跳转并成功渲染的是     1.uni.switchTab      2.uni.navigateBack(有个憨憨抄文章抄成navigateTo 我第一次就搜到了简直了 抄作业都抄不好) 就这样 记录下



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3