代码之家  ›  专栏  ›  技术社区  ›  Shanu k k

无法加载文件“”/dom'来自模块'react-router'-react router dom

  •  3
  • Shanu k k  · 技术社区  · 3 周前

    我已经安装了最新的react-router-dom,并在package.js中显示了它 "react-router-dom": "^7.0.2" 当我检查时 npm -v react-router-dom its showing 10.9.0 。在我的代码中

    import React from "react";
    import ReactDOM from "react-dom";
    import Header from "./components/Header";
    import Body from "./components/Body";
    import About from "./components/About";
    import {
      createBrowserRouter as Router,
      RouterProvider
    } from "react-router-dom";
    
    const AppLayout = () => {
      return (
        <div className="app">
          <Header />
          <Body />
        </div>
      );
    };
    
    const appRouter= createBrowserRouter ([
      { path: "/", element: <AppLayout /> },
      { path: "about", element: <About /> },
    ])
    
    const root = ReactDOM.createRoot(document.getElementById("root"));
    root.render(<RouterProvider router= {appRouter} />);
    

    我得到和错误一样

    @包裹/核心:无法从解析“react-router/dom” './node_modules/react-router-dom/dist/index.mjs D: \Namthe\node_modules\react路由器dom\dist\index.mjs:13:48 12| //index.ts

    13|从“react-router/dom”导入{HydratedOuter,RouterProvider}; |从“反应路由器”导出*;15 |出口 {@package/resolver默认值:无法从模块加载文件“./dom” '反应路由器'

    1 回复  |  直到 3 周前
        1
  •  2
  •   Drew Reese    3 周前

    React Router 7确实改变了他们组织代码的方式。这个 RouterProvider 组件未从导出 react-router-dom ,它来自一个更深入的嵌套包,特定于平台,例如DOM特定, react-router/dom 在v7中, react-router 是主要的切入点。

    1. 卸载 反应路由器dom : npm un react-router-dom

    2. 安装 反应路由器 : npm i react-router@latest

    3. 更新导入来源 反应路由器

      import {
        createBrowserRouter as Router,
        RouterProvider
      } from "react-router";
      

    有关完整详细信息,请参阅: