micro-app
micro-app copied to clipboard
子应用内注册监听器不生效
问题描述
在子应用mount方法里注册了一个监听器 window.microApp.addDataListener((data) => { console.log('addDataListener = ',data) },true)
但通过主应用打开并microApp.setData(appName,data)之后,子应用无法响应数据变化 无报错 子应用打印window.microApp也正常
环境信息
- micro-app版本:0.8.5
- 主应用前端框架&版本:vue 2.6.11
- 子应用前端框架&版本:vue 2.6.11
主应用传了没有
micro-app再次封装成组件的时候就失效了
这个问题有解决吗。我也遇到了
或者 有没有代替的方案
- 主应用注册
import microApp, { EventCenterForMicroApp } from '@micro-zoe/micro-app'
window.eventCenterForChildApp_1 = new EventCenterForMicroApp('child-app-1')
// 传递
// 向子应用传递路由
microApp.setData('child-app-1', { path: 'path' })
- 子应用接收
经作者提示,已加上第二个参数true,
autoTrigger: 在初次绑定监听函数时如果有缓存数据,是否需要主动触发一次,默认为false
if(window.eventCenterForChildApp_1){
window.eventCenterForChildApp_1.addDataListener((data) => {
console.log(8, data)
// 当基座下发跳转指令时进行跳转
if (data.path) {
console.log('push')
router.push(data.path)
}
}, true)
}
addDataListener 第二个参数设置为true,window.eventCenterForChildApp_1.addDataListener((data) => {}, true)
同样的问题我也遇到了