如何在 Next.js 中使用 react-file-viewer 导入 PDF 文件?

IT技术 reactjs next.js
2021-04-26 03:26:36

我想在 Next.js 中使用文件查看器,但出现此错误:

./public/pdf.pdf Module parse failed: Unexpected token (1:0) 你可能需要一个合适的加载器来处理这个文件类型,目前没有加载器被配置来处理这个文件。
> %PDF-1.3
| %
|

我怎么解决这个问题?

我的代码:

import FileViewer from "react-file-viewer/src/components";
import pdf from "../../../public/pdf.pdf"

...(in component)

 {openFileViewer ? <FileViewer fileType="pdf" filePath={pdf}  /> : null}
1个回答

由于您的 PDF 文件位于public文件夹中,您可以直接在filePathprops中引用图像的路径

您还需要确保react-file-viewer仅在浏览器中导入,因为它取决于window是否存在才能正常工作。您可以通过next/dynamicwith动态导入组件来实现ssr: false

import dynamic from 'next/dynamic';

const FileViewer = dynamic(() => import('react-file-viewer'), {
    ssr: false
});

export default function Index() {
    return (
        <FileViewer fileType="pdf" filePath="/pdf.pdf" />
    );
};