uni-app $emit使用downloadedUpdate词无效问题【已解决】

uni-app $emit使用downloadedUpdate词无效问题【已解决】

开发环境 版本号 项目创建方式
Windows Win10 HBuilderX
操作步骤:

page1.vue里定时触发这个

uni.$emit('downloadedUpdate', {msg: 'msg'})

page2.vue里监听这个,得不到任何消息

uni.$on('downloadedUpdate', (data)=>{  
    console.log('downloadedUpdate')  
})


### 预期结果:

page2.vue应该接收到page1.vue里发来的消息

### 实际结果:

page2.vue接收不到page1.vue里发来的消息

### bug描述:

page1.vue里

```javascript
uni.$emit('downloadedUpdate', {msg: 'msg'})

page2.vue里

uni.$on('downloadedUpdate', (data)=>{  
    console.log('downloadedUpdate')  
})

这样写page2.vue里无法接收到消息 把downloadedUpdate改成asdfghj就行,只能怀疑是downloadedUpdate这个词导致的 如果这个词是保留词语,请在文档里强调一下这个词以及其它保留词。 如果不是保留词,请修复一下bug


更多关于uni-app $emit使用downloadedUpdate词无效问题【已解决】的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

换成 asdfghjasdfghjasdfghj 测试呢?
另外你检查一下你调用 $emit 是不是比调用 $on 时机早?
如果仍然检查不出问题,提供测试工程和测试步骤

更多关于uni-app $emit使用downloadedUpdate词无效问题【已解决】的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app事件名称限制问题。downloadedUpdate是uni-app内部使用的保留事件名,主要用于处理应用更新相关逻辑。当使用这个特定名称作为自定义事件时,会导致监听失效。

解决方案很简单:避免使用downloadedUpdate作为自定义事件名称,改用其他命名即可。例如:

// 发送方
uni.$emit('customUpdate', {msg: 'msg'})

// 接收方
uni.$on('customUpdate', (data)=>{
    console.log(data)
})
回到顶部