是否可以在 useRef() 中的初始值元素上使用 document.getElementById?

问题描述

const myComp = () => { 
   const myRef = useRef();

   useEffect(() => {
       if (!myRef.current) return;
     
       const element = document.createElement('div');
       element.setAttribute('id','some-id');
       myRef.current.appendChild(element);

       // wrapperElement is `undefined`
       const wrapperElement = document.getElementById('some-id')

      // this will trigger error - see comment above   
      wrapperElement
         .appendChild(document.createElement('iframe')); 
    }
},[ myRef ]);

当元素是 ref 元素的子元素(或存储在 ref 元素本身中)时,有没有办法通过 id 获取元素?

目标是允许外部库获取包装器并在其中加载 iframe。我无法控制外部库

用例示例:Youtube player iframe,当通过包装器 id 而不是实际元素初始化时。我知道 Youtube 播放器允许传递实际元素(即 myRef.current)而不是包装器 id,但是 解决方案必须是通用的,并且应该只使用元素 id

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...