Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Next.js引用错误-PDFtron Webviewer_Javascript_Reactjs_Next.js - Fatal编程技术网

Javascript Next.js引用错误-PDFtron Webviewer

Javascript Next.js引用错误-PDFtron Webviewer,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我正在开发一个网站,我有一个pdf浏览器在我的页面内动态导入。 代码在本地运行时没有错误,但在“npm run build”命令期间,我发现以下错误: > Build error occurred ReferenceError: window is not defined at Object.<anonymous> (C:\Users\GustavoMorilla\MyProfile\node_modules\@pdftron\webviewer\webviewer.m

我正在开发一个网站,我有一个pdf浏览器在我的页面内动态导入。 代码在本地运行时没有错误,但在“npm run build”命令期间,我发现以下错误:

> Build error occurred
ReferenceError: window is not defined
    at Object.<anonymous> (C:\Users\GustavoMorilla\MyProfile\node_modules\@pdftron\webviewer\webviewer.min.js:1:224)
    at Object.g7Pv (C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:121:18)    
    at __webpack_require__ (C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:23:31)
    at Module.vRHl (C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:134:76) {  
  type: 'ReferenceError'
info  - Collecting page data .npm ERR! code ELIFECYCLE }
发生生成错误 ReferenceError:未定义窗口 反对。(C:\Users\GustavoMorilla\MyProfile\node\u modules\@pdftron\webviewer\webviewer.min.js:1:224) 在Object.g7Pv(C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:121:18) 在网页上(C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:23:31) 在Module.vRHl(C:\Users\Gustavo Morilla\MyProfile\.next\server\pages\resume\viewer.js:134:76){ 类型:“ReferenceError” 信息-正在收集页面数据。npm ERR!code ELIFECYCLE} viewer.js代码:

import React, { useRef, useEffect } from "react";
import WebViewer from "@pdftron/webviewer";

const Viewer = () => {
  const viewer = useRef(null);

  useEffect(() => {   
    WebViewer(
      {
        path: '/lib',
        initialDoc: "/pdf/GustavoMorilla.pdf",
      },
      viewer.current
    ).then(function (instance) {
      instance.setTheme("dark");
    });
  }, []);

  return (
    <div>      
        <div className="Viewer">  
        <div className="header flex justify-between">          
          <a>Resume</a>
          <a className="text-sm">You can download the file on "Settings" button</a>         
        </div>    
        <div className="Webviewer" ref={viewer}></div>
      </div>
    </div>
  );
};

export default Viewer;
import React,{useRef,useffect}来自“React”;
从“@pdftron/WebViewer”导入WebViewer;
常量查看器=()=>{
const viewer=useRef(null);
useffect(()=>{
网络浏览器(
{
路径:'/lib',
initialDoc:“/pdf/GustavoMorilla.pdf”,
},
查看器.current
).then(函数(实例){
setTheme(“黑暗”);
});
}, []);
返回(
简历
您可以通过“设置”按钮下载文件
);
};
导出默认查看器;
resume.js代码:

import SiteLayout from "../../components/SiteLayout";
import React from "react";
import dynamic from "next/dynamic";
const Viewer = dynamic(() => import("../resume/viewer.js"), { ssr: false });

export default function Resume({ resume }) {
  return (
    <div>
      <SiteLayout>    
      <div className="main w-screen">                         
          <Viewer />     
        </div>               
      </SiteLayout>
    </div>
  );
}
从“../../components/SiteLayout”导入SiteLayout;
从“React”导入React;
从“下一个/动态”导入动态;
const Viewer=dynamic(()=>import(“../resume/Viewer.js”),{ssr:false});
导出默认函数Resume({Resume}){
返回(
);
}
任何帮助都会非常有用。。。应该与SSR或生命周期有关。。。我不知道。

似乎“@pdftron/webviewer”要在
窗口中定义一些内容。试着懒洋洋地加载这个

useffect(异步()=>{
const WebViewer=等待导入(@pdftron/WebViewer”);
网络浏览器(
{
路径:'/lib',
initialDoc:“/pdf/GustavoMorilla.pdf”,
},
查看器.current
).then(函数(实例){
setTheme(“黑暗”);
});
}, []);

您是否尝试过高级功能:动态导入| Next.js?此处使用动态导入:“const Viewer=Dynamic(()=>Import(../resume/Viewer.js)),{ssr:false}”);“我们不能这样做,在呈现页面时会收到错误“WebViewer不是函数”