Javascript 有没有一种方法可以强制呈现React组件?

Javascript 有没有一种方法可以强制呈现React组件?,javascript,reactjs,Javascript,Reactjs,在React应用程序中,我希望将DOM树呈现为画布或PDF DOM树不是活动组件,而是在路由中的函数内的变量中可用 例如: import React from 'react'; import axios from 'axios'; function Summary(props) { function SaveForm(){ const obj = <div>I am what is saved</div> const obj_as_blob = .

在React应用程序中,我希望将DOM树呈现为画布或PDF

DOM树不是活动组件,而是在路由中的函数内的变量中可用

例如:

import React from 'react';
import axios from 'axios';

function Summary(props) {

  function SaveForm(){
    const obj = <div>I am what is saved</div>
    const obj_as_blob = ...code to save obj as canvas/pdf/blob...
    axios.post('/save',obj_as_blob)
      .then((resp)=>{console.log(resp)})
  }

  return (
    <div>
      <p>I am what the user sees</p>
      <button onClick={SaveForm}>Send File to backend</button>
    </div>
  )
}
从“React”导入React;
从“axios”导入axios;
功能摘要(道具){
函数SaveForm(){
const obj=我就是被拯救的人
const obj_as_blob=…将对象另存为画布的代码/pdf/blob。。。
axios.post('/save',obj_as_blob)
.then((resp)=>{console.log(resp)})
}
返回(
我是用户所看到的

将文件发送到后端 ) }
我发现的许多库,例如,只允许对附加到当前文档的元素进行强制访问,替代方案(如)需要有限地使用其组件,并且不允许我在渲染步骤中使用组件

最终目的是将
obj
作为渲染的blob,并将其发送到后端服务器进行保存。这将在以后的日期提供给用户


非常感谢您在这方面提供的任何帮助。

我有一个想法,在您捕获jsx元素之前,您可以在活动组件中放置锚,然后在将快照发送到后端时卸载它:

功能摘要(道具){
const yourAnchor=React.useRef();
函数save(){
const obj=我是被拯救的;
render(obj,yourAnchor.target,()=>{
//您的jsx最终附加到文档中
const obj_as_blob=…将对象另存为画布的代码/pdf/blob。。。
axios.post('/save',obj_as_blob)
.最后(()=>{
//卸载节点
ReactDOM.unmountComponentAtNode(yourAnchor.current);
})
});
}
返回(
我是用户所看到的

将文件发送到后端 ) }
我有一个想法,在捕获jsx元素之前,您可以将其放在活动组件中的锚点上,然后在将快照发送到后端时卸载它:

功能摘要(道具){
const yourAnchor=React.useRef();
函数save(){
const obj=我是被拯救的;
render(obj,yourAnchor.target,()=>{
//您的jsx最终附加到文档中
const obj_as_blob=…将对象另存为画布的代码/pdf/blob。。。
axios.post('/save',obj_as_blob)
.最后(()=>{
//卸载节点
ReactDOM.unmountComponentAtNode(yourAnchor.current);
})
});
}
返回(
我是用户所看到的

将文件发送到后端 ) }
您不知道将查询特定DOM的代码放在哪里进行转换?@tmhao2005想象一下,他们将有一个提交按钮,当他们提交时,我将异步地将
我是保存的内容
呈现到pdf,并通过HTTP将其发布到后端服务器。老实说,我没有完全理解您的意思。当你点击convert+submit(转换+提交文件)按钮时,是否调用了回调?@tmhao2005我已通过示例进行了更改,这有帮助吗?难道你不能把它呈现在一个隐藏的html中,然后保存它的内容吗?你不知道把查询特定DOM的代码放在哪里进行转换吗?@tmhao2005想象一下,他们会有一个提交按钮,当他们提交时,我会异步地将
I is what's saved
呈现到一个pdf和HTTP POST中到后端服务器。老实说,我没有完全理解你。当你点击convert+submit(转换+提交文件)按钮时,调用的是回调吗?@tmhao2005我通过示例进行了更改,这有帮助吗?你不能将其呈现为隐藏的html格式,然后保存其内容吗?