【问题标题】:ReactJs lazy when trying to use lazy loading, getting 'window; is not defined errorReactJs 在尝试使用延迟加载时变得懒惰,得到 'window;未定义错误
【发布时间】:2020-12-31 21:07:43
【问题描述】:

从 'react' 导入 React, { Component, lazy, Suspense };

// 从 './Components/myComp' 导入 MyComp;
const MyComp = lazy(() => import('./components/myComp'));

500 内部服务器错误 加载“~/Content/Scripts/dist/server.js”时出错:ReferenceError: 'window' is not defined at Anonymous function (server.js:1:1832) -> …op="",o.oe=function (e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],... at Global code (server.js:1:1)

【问题讨论】:

    标签: reactjs webpack lazy-loading


    【解决方案1】:

    你必须使用可加载的https://github.com/gregberge/loadable-components 而不是 React.lazy。当你有服务器端渲染时,React.lazy 不起作用。

    import loadable from '@loadable/component'
    // This dynamic import will not be processed server-side
    const Other = loadable(() => import('./Other'), { ssr: false })
    

    【讨论】:

    • import React from 'react'; import loadable from '@loadable/component'; import Loading from './Loading'; const LoadableComponent = loadable(() => import('./OtherComponent'), { fallback: <Loading />, }); 仍然出现同样的错误,控制台也抛出错误“Uncaught ReferenceError: jQuery is not defined”
    • 我更新了答案,你添加了 ssr: false 吗?不知道 jquery 是如何与之相关的)
    • 我不使用ssr
    • 我正在使用 react js 和 asp.net ,webpack.config.js 中没有选项 ssr
    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2021-08-12
    • 2019-05-19
    • 2010-11-29
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多