Javascript 在React门户中呈现iFrame

Javascript 在React门户中呈现iFrame,javascript,reactjs,iframe,react-hooks,react-portal,Javascript,Reactjs,Iframe,React Hooks,React Portal,我正在创建一个Logger服务,用于跟踪我的应用程序中的事件。为了使记录器服务通用化,我使用React的门户捕获应用程序中触发的事件。我的应用程序的基本思想是: 它有一个描述我问题的应用程序。有人在使用门户和iFrame时看到过这个问题吗?我是不是遗漏了一些明显的东西?棘手的问题 useRef在对添加或删除DOM节点进行更改时不会导致重新渲染。在您的情况下,将iframe附加到的道具.children,因此您的控制台将返回null。您必须使用回调引用:useCallback 因此,要获得ifr

我正在创建一个
Logger
服务,用于跟踪我的应用程序中的事件。为了使
记录器
服务通用化,我使用React的门户捕获应用程序中触发的事件。我的应用程序的基本思想是:


它有一个描述我问题的应用程序。有人在使用门户和iFrame时看到过这个问题吗?我是不是遗漏了一些明显的东西?

棘手的问题

useRef
在对添加或删除DOM节点进行更改时不会导致重新渲染。在您的情况下,将
iframe
附加到
道具.children
,因此您的控制台将返回
null
。您必须使用回调引用:
useCallback

因此,要获得iframe的ref,可以尝试:

  let refiFrame =  useCallback(node => {
    refiFrame = node
  });
以下是您的codesandbox的工作修改版本: