You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React启动空白页报__WEBPACK_DEFAULT_EXPORT__初始化前访问错误

报错根因

这个错误是ES模块暂时性死区(TDZ)触发的典型报错,核心是两个问题叠加导致:

  • 项目存在隐式循环依赖:从代码结构看,导航栏组件为了渲染路由跳转链接,大概率引入了./configs/route里的路由配置,形成了App -> NavBar -> route配置 -> 页面组件的依赖环,webpack在按顺序加载模块时,会出现某个模块的默认导出还没完成初始化就被访问的情况。
  • 路由配置写法不规范:你在route.jsx的顶层作用域直接写了<FleetPage />这类JSX实例,会导致模块刚被加载、还没完成所有初始化步骤时,就提前执行组件的实例化逻辑,直接触发了对未初始化导出的访问。

你看到的报错指向fleet组件,但fleet组件本身的类定义和导出写法没有任何问题,只是它刚好是循环依赖链路里第一个被提前实例化的组件,所以成了报错的抛出点。

修复方案

分两步修改即可解决问题:

  1. 调整路由配置的写法,不要在配置顶层存JSX实例,只存组件的引用,把JSX实例化的逻辑放到实际渲染路由的位置,避免模块加载阶段提前执行组件创建。
    修改后的route.jsx代码:
import HomePage from "../components/pages/homePage";
import ServicesPage from "../components/pages/services";
import FleetPage from "../components/pages/fleet";
import ContactPage from "../components/pages/contact";
import DriversDataPage from "../components/pages/driversData";

const routes = [
  {
    name: "Home",
    path: "/",
    component: HomePage, // 仅存储组件引用,不要提前写<HomePage />实例
  },
  {
    name: "Services",
    path: "/Services",
    component: ServicesPage,
  },
  {
    name: "Drivers-data",
    path: "/Drivers-data",
    component: DriversDataPage,
  },
  {
    name: "Fleet",
    path: "/fleet",
    component: FleetPage,
  },
  {
    name: "Contact",
    path: "/Contact",
    component: ContactPage,
  },
];

export default routes;
  1. 对应修改App.jsx里渲染路由的逻辑,遍历路由配置时再创建JSX实例:
    修改后App.jsx的路由渲染核心代码段:
<Routes>
  {routes.map((route, index) => {
    const PageComponent = route.component;
    return <Route key={index} path={route.path} element={<PageComponent />} />;
  })}
</Routes>

额外排查建议:如果改完还是偶发同类报错,可以检查下各个页面组件里是否存在直接引入App组件、NavBar组件的情况,从根源上切断循环依赖链路即可。

内容的提问来源于stack exchange,提问作者Bismark Agyare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 04:51:19