【问题标题】:How to import PDF file with react-file-viewer in Next.js?如何在 Next.js 中使用 react-file-viewer 导入 PDF 文件?
【发布时间】:2021-09-02 21:55:44
【问题描述】:

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

./public/pdf.pdf 模块解析失败:意外令牌 (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}

【问题讨论】:

  • 您不能像模块一样导入 PDF。您是否尝试过直接在 filePath 属性中传递路径?我想你也可以直接在 prop 中传递pdf.pdf,因为它在 public 文件夹中。

标签: reactjs next.js


【解决方案1】:

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

您还需要确保 react-file-viewer 仅在浏览器中导入,因为它依赖于 window 的存在才能正常工作。您可以通过next/dynamicssr: 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" />
    );
};

【讨论】:

    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2020-04-06
    • 2021-03-04
    • 2017-11-29
    相关资源
    最近更新 更多