0

有没有人设置电子来传递 PDFViewer 组件,然后从 React 显示到 DOM?我能够显示一个空框,因为 blob 文件和 html 没有像在简单的 React 应用程序中那样传递给 DOM。要求将 blob 文件保存在某个地方,而不是像简单的 React 应用程序那样仅用于 DOM。

我认为 PDFViewer 信息需要以某种方式通过 package.json/webpack 传递到电子 main.dev.ts 文件才能正确显示到 DOM。

由于 PDFViewer 被安装和卸载,我也遇到了内存泄漏:

警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 componentWillUnmount 方法中的所有订阅和异步任务。在 InternalBlobProvider(由 PDFViewer 创建)中 在 PDFViewer(在 tearDownSummery.tsx:9) 在 div(在 tearDownSummery.tsx:8)

这就是我必须调用的我设置的 pdf 组件,它可以一直工作到显示到 DOM。下载链接有效,我通过 .

import React from 'react';
import { PDFViewer, PDFDownloadLink } from '@react-pdf/renderer';
import ReactDOM from 'react-dom';
import TearDownPDF from './tearDowSummeryPDF';


export default function TearDownSummery() {
  return (
    <div>
      <PDFViewer>
        <TearDownPDF />
      </PDFViewer>
      <PDFDownloadLink document={<TearDownPDF />} fileName="IIR.pdf">
        {({ blob, url, loading, error }) =>
          loading ? <i> Loading document...</i> : <i> Download Pdf </i>}
      </PDFDownloadLink>
    </div>
  );
}

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

这是我的 GitHub 项目:https ://github.com/staniszmatt/iir_Report.git 全部设置在 pdfSetup 分支上。

4

1 回答 1

0

目前,根据我发现的这篇文章,Electron 无法使用@react-pdf。

https://github.com/electron/electron/issues/13038

如果电子添加此功能以及何时添加此功能,我将不得不再次回答。

于 2020-08-06T21:06:52.243 回答