Javascript 如何在不渲染的情况下将虚拟DOM转换为真实DOM元素?

Javascript 如何在不渲染的情况下将虚拟DOM转换为真实DOM元素?,javascript,reactjs,html2canvas,Javascript,Reactjs,Html2canvas,我过去常常对我的页面进行屏幕截图。但是html2canvas需要一个元素作为参数,但我有一个react应用程序,我使用一个模板来获取虚拟DOM。该模板需要多次重复使用 (所以我不想先渲染它们,然后通过ref或getDocumentbyId()获取元素,这将是非常令人敬畏的) 例如: 我得到了1000个订单数据。模板将是1000个。那么虚拟DOM对象将是1000个 是否有任何方法可以直接将虚拟DOM Obj转换为元素Obj 从'react dom/server'导入{renderToString}

我过去常常对我的页面进行屏幕截图。但是html2canvas需要一个元素作为参数,但我有一个react应用程序,我使用一个模板来获取虚拟DOM。该模板需要多次重复使用

(所以我不想先渲染它们,然后通过ref或getDocumentbyId()获取元素,这将是非常令人敬畏的)

例如: 我得到了1000个订单数据。模板将是1000个。那么虚拟DOM对象将是1000个

是否有任何方法可以直接将虚拟DOM Obj转换为元素Obj

从'react dom/server'导入{renderToString}
import { renderToString } from 'react-dom/server'

renderToString(<YouComponent>)
renderToString()
我不明白,你的术语真让人困惑。什么叫DOM字符串?最后你想要什么?H2C使用计算样式,所以它需要活动文档的子节点。是的,我弄错了,它不是字符串,html2canvas需要一个元素对象作为参数。所以我发现,如果我只是使用一个函数将html字符串转换为一个元素,它仍然不起作用。节点实际上需要是整个document.BTW的子节点,我提到的函数将html字符串转换为如下元素--var str2DOMElement=function(html){var frame=document.createElement('iframe');frame.style.display='none';document.body.appendChild(frame);frame.contentDocument.open();frame.contentDocument.write(html);frame.contentDocument.close();var el=frame.contentDocument.body.firstChild;document.body.removeChild(框架);return el;}var markup='此处的文本

';var el=str2DOMElement(标记);我想要的是下载订单详情的PDF。我知道了,如果我想使用H2C拍摄屏幕快照,我必须呈现模板。改成这个,它以html字符串作为参数,这有什么帮助?这个函数做什么?按它的名称,我会说它返回了一个正确的字符串?这个如何帮助OP尝试使用htm拍摄屏幕快照l2canvas图书馆?