首页 > 解决方案 > 如何从 reactjs 中的 iframe 订阅在 dojo 中发布的事件

问题描述

我在dojo中有以下代码:

topic.publish("select",data);

我想订阅这个事件并在用 reactjs 编写的 iframe 中获取数据。

在这里,首先加载父窗口,即 dojo 代码,然后在菜单上单击反应代码中的 iframe 启动。

我可以有一个全局事件侦听器,我可以在我的 dojo 代码中订阅它并在 iframe 启动后使用相同的侦听器吗?

标签: javascriptreactjsdojo

解决方案


您可以尝试发出CustomEvent,因为我看不出如何在不将 dojo/topic 作为依赖项导入的情况下在 react 中捕获 dojo/topic。

function fireEvent(data) {
    let e = new CustomEvent('dojoevent', {detail: data});
    window.dispatchEvent(e);
}



window.addEventListener('dojoevent', function (e) {
    console.log('dojoevent', e.detail);
});

fireEvent(1000)


推荐阅读