ReactDom.Render() 在 SharePoint 框架应用程序中

ReactDom.Render() in SharePoint Framework App

对于我们当前的项目,我们需要能够从 <div></div> 中创建一个 PDF 文件。

当我查看其中大部分的代码时,它们是从 ReactDom.Render() 渲染而不是渲染 class:

例子来自React-pdf:

import React from 'react';
import ReactDOM from 'react-dom';
import { PDFViewer } from '@react-pdf/renderer';

const App = () => (
  <PDFViewer>
    <MyDocument />
  </PDFViewer>
);

ReactDOM.render(<App />, document.getElementById('root'));

我已经尝试使用谷歌搜索和试用它,但我所做的一切都会引发错误。

我对 SPFx、Javascript 和 React 还很陌生。

我习惯用的是render方法:

export default class PDF extends React.Component<IPDFProps, {}> {
  public render(): React.ReactElement<IPDFProps> {
    return (
        // my components
    );
  }
}

它不仅是 React-pdf,还有 pdfMake, react-pdf-js 和其他。

我可以让 jsPDF 工作,但我不喜欢你需要如何设置每个部分的坐标。如果一个部分发生变化,您必须重做所有其他坐标。

我想您可能对这一行感到困惑:

ReactDOM.render(<App />, document.getElementById('root'));

基本上这是说渲染我的 App 组件(第一个参数)并将其注入到此节点的 dom(第二个参数)。

这只是将您的 React 代码注入 dom 的标准代码。但是,您可以随意导入和使用 PDFViewer。例如,您可以这样做:

  export default class PDF extends React.Component<IPDFProps, {}> {
  public render(): React.ReactElement<IPDFProps> {
    return (
      <PDFViewer>
        <MyDocument />
      </PDFViewer>
    );
  }
}