我有一个外部库,可以呈现一些自定义 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/