javascript - 在 React 组件的渲染函数中返回 DOM 元素

标签 javascript reactjs dom

我有一个外部库,可以呈现一些自定义 js 控件。该库返回一个可以插入到页面中的 DOM 元素。

我正在 React 中为这个库创建包装器。除了我不确定如何让渲染函数接受 DOM 元素作为它的返回值之外,我已经把它全部连接起来了

render() {
 if (this.state.someType) {
   let customControl = new this.state.someType();
   var node = customControl.getNode(); 

   return node; //This is an HTMLDOMElement i.e. div or span
 }

 return <div>Loading Custom Control...</div>;
}

我能够调试代码并且一切正常。该节点是我所期望的,但页面上的 html 永远不会被替换。

最佳答案

这是一个简单的例子。

render() {
   const newNode = document.createElement('p'); 
   return <div ref={(nodeElement) => {nodeElement && nodeElement.appendChild(newNode)}}/>
}

关于javascript - 在 React 组件的渲染函数中返回 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901857/

相关文章:

javascript - IE9错误?由于 URL 敏感性,iframe 行为异常

javascript - 道场教程 : dojo is not defined

javascript - 将 css "display:none"值替换为“显示 :flex using js

javascript - Jquery - event.target 和 this 关键字之间的区别?

javascript - 将 HTML 元素对象与自定义对象合并

javascript - Safari 和 iOS 设备不支持 jQuery AJAX 调用

node.js - "npm run build --prod"中的 --prod 标志有什么用?

javascript - 用表情符号替换字符串的最有效方法

javascript - 在 ReactJs 中修改子最后一个组件和 css 属性

javascript - 如何根据 1 个主复选框(19 次)选中/取消选中 3 个辅助复选框?