有没有人设置电子来传递 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 分支上。