如何修复ReferenceError:ReactJS中未定义窗口

如何修复ReferenceError:ReactJS中未定义窗口,reactjs,Reactjs,我正在使用tui日历进行项目,当我尝试“开始”时出现错误“ReferenceError:window未定义” })(窗口,函数(uuu网页u外部u模块u推送u代码uu代码段uuu,uuu网页u外部u模块u推送u日期uu选择器uu){ ^ ReferenceError:未定义窗口 at对象。(C:\Users\Thao\Documents\Github\App\node\u modules\tui calendar\dist\tui calendar.js:16:4) at模块编译(内部/modu

我正在使用tui日历进行项目,当我尝试“开始”时出现错误“ReferenceError:window未定义”

})(窗口,函数(uuu网页u外部u模块u推送u代码uu代码段uuu,uuu网页u外部u模块u推送u日期uu选择器uu){
^
ReferenceError:未定义窗口
at对象。(C:\Users\Thao\Documents\Github\App\node\u modules\tui calendar\dist\tui calendar.js:16:4)
at模块编译(内部/modules/cjs/loader.js:1200:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1220:10)
在Module.load(内部/modules/cjs/loader.js:1049:32)
at Function.Module._load(内部/modules/cjs/loader.js:937:14)
at Module.require(内部/modules/cjs/loader.js:1089:19)
根据需要(内部/modules/cjs/helpers.js:73:18)
评估时(webpack:///external_%22tui-日历%22?:1:18)
位于Object.tui-calendar(C:\Users\Thao\Documents\Github\App\build\server.js:21026:1)
在网页上(C:\Users\Thao\Documents\Github\App\build\server.js:21:30)
错误命令失败,退出代码为1。
信息访问https://yarnpkg.com/en/docs/cli/run 有关此命令的文档。
如果我在项目运行时添加日历组件,那么它就是工作

从“@toast ui/react Calendar”导入日历“

但它不能从“纱线开始”开始


根本原因是什么?谢谢,我在您的错误日志中看到了
\build\server.js
。因此,根本原因很可能是SSR

您的UI组件与SSR不兼容或配置不正确。当您运行
warn start
时,服务器端没有
窗口
对象。但正如您所注意到的,您仍然可以通过将其导入正在运行的项目中使其正常工作,该项目的页面已在浏览器中呈现

 yarn start 
我相信这是因为开始脚本造成的。您可能正在构建应用程序,然后您的开始脚本如下所示:

"start":"node build/bundle.js" // path of bundle. 
这样做时,就没有浏览器环境。“bundle.js”只是一个常规javascript文件,在该文件中使用了
窗口,但窗口仅在浏览器中定义。因此,您必须使用服务器来提供文件。更简单的方法是,使用
webpack dev server
。以下是您应添加到webpack.config.js的配置:

devServer: {
historyApiFallback: true,
contentBase: path.join(__dirname, "build"), // build is output folder 
overlay: true,
 },
这是您应该在package.json中设置的脚本:

 "start":""webpack-dev-server --open"

它将自动打开端口8080处的浏览器。这是用于开发环境的。在生产环境中,您应该设置一个自定义服务器,如express server。

您能提供一些代码示例或代码的可复制部分吗?我是这样使用的:但我不知道为什么在codesanbox工作时我的本地项目无法启动您试过了吗删除node_模块文件夹(rm-rf node_模块),然后使用“Thread”重新安装?我尝试过。但仍然存在错误。您是使用自定义网页配置还是创建react应用程序默认设置?
 "start":""webpack-dev-server --open"