【发布时间】:2021-07-22 12:19:33
【问题描述】:
我想将一个div元素附加到Parent,Parent是一个高度封装的组件,我只能得到它的ref,现在我创建一个元素使用React.createElement(),因为我可以同时为元素创建ref,然后我尝试使用appendChild() 将此元素附加到父级,但失败了。
const demo: React.FC = () => {
const parentRef = useRef<HTMLElement>(null);
// append child
const childRef = useRef<HTMLElement>(null)
let child = React.createElement("div",{ref:childRef})
useEffect(() =>{
if(parentRef.current) {
parentRef.current.appendChild(child) // error
}
},[])
return (
<>
<Parent
ref={parentRef}
{...allprops}
/>
</>
)
};
export default demo;
我收到一个错误:'DetailedReactHTMLElement
如果我使用let child = document.createElement("div") 创建子元素,则不会出现此错误,但我无法为子元素创建 ref(或者我不知道如何)。
我能做些什么来解决它?提前谢谢你!
【问题讨论】:
-
在任何情况下都不应在反应中使用
appendChild
标签: reactjs typescript