开发者问题收集

使用“react-pdf”时 React 应用程序抛出错误

2018-12-10
4139

在使用“create-react-app”创建的 React 应用中,我一直无法让 react-pdf 正常工作。从 react-pdf 页面上的各种 github 评论来看,似乎在使用“create-react-app”创建的 React 应用中设置 workerSrc 时存在问题。

一种似乎可以(暂时)解决问题的方法是复制 node-modules/build/pdfjs-dist/build 文件夹中的 pdf.worker.js 文件并将其放在我的 React 应用的公共文件夹中。然后在我的 index.js 文件中输入以下代码:

  import  {pdfjs}  from 'react-pdf' 
window.PDFJS.workerSrc  = process.env.PUBLIC_URL + '/pdf.worker.js'

这工作了一个星期,直到我使用 npm 在我的应用中安装了一个新模块。现在,我得到了和一开始一样的错误,而且什么都没有改变:

index.js:14 Uncaught TypeError: Cannot set property 'workerSrc' of undefined

这些是帮助我缩小错误范围的初始评论: https://github.com/facebook/create-react-app/issues/1574#issuecomment-280436498

https://github.com/wojtekmaj/react-pdf/issues/291

但是现在它又回来了,我有点不知所措。有没有人遇到过这种情况并能解决?任何帮助都将不胜感激!

2个回答

根据我在文档和论坛中看到的内容,您似乎应该更改全局 PDFJS 对象。

PDFJS.workerSrc,而不是 window.workerSrc。

Tom King
2018-12-10

我设法通过从 CDN 加载工作器来实现这一点。

import { Document, Page, pdfjs } from 'react-pdf';

pdfjs.GlobalWorkerOptions.workerSrc=//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js
Maksym Koshyk
2020-06-09