我有几个反应组件,我想从中获取一个组件作为html字符串发送到服务器。
假设我要发送的组件是<ReportComponent />
如何做到的。
我尝试过
onRouteChanged = () => {
console.log(<ReportComponent />);
};
但这不会给我HTML格式。
场景是这样
单击发送按钮后,客户端计算机上当前正在查看的组件应发送到服务器以另存为报告。
答案 0 :(得分:0)
您可以使用普通的document.querySelector
和innerHTML
属性。
在ReportComponent
中添加一个包装div
来呈现方法并为其指定ID:
<div id="reportComponent">...important stuff that gets rendered...</div>
在ReportComponent
已经呈现并且在DOM中之后,您可以
const reportComponentHTML = document.querySelector("#reportComponent").innerHTML;
//send it to server or log it to console
console.log(reportComponentHTML)
答案 1 :(得分:0)
尝试使用renderToString()
方法
您需要使用import {renderToString} from react-dom/server
然后像这样记录组件
renderToString(<MyAwesomeComponent/>)
确保您通过了必需的道具。
答案 2 :(得分:0)
假设您的问题是获取渲染元素的完整HTML。
您必须设法在组件上分配ID attribute
或在组件上使用refs attribute
,并在调用onRouteChanged
时使用getElementById
或在react中使用引用来获取组件。
对于裁判的例子,你可以参考 How to access a DOM element in React? What is the equilvalent of document.getElementById() in React
注意:refs在以后的版本中可能会贬值