今天导入react-router-dom,出现了这个错误:模块““react-router-dom“”没有导出的成员“Switch”

今天导入react-router-dom,出现了这个错误:模块“"react-router-dom"”没有导出的成员“Switch”。

原来是因为版本问题,最新install的版本是"react-router-dom": "^6.3.0",

所以想要解决这个问题,有两个思路,1.改成版本6的写法;2.降版本

下面我们逐一说明:

1.改成版本6的写法,我们可以用,Routes代替Switch

import { BrowserRouter, Route, Routes } from "react-router-dom"

<Routes>

<Route exact path="/" element={<HomePage/>} />

...

</Routes>

上面的代码需要注意,<Route exact path="/" component={HomePage}> 这句是原来用switch的写法,注意版本不同写法不同。

2.降版本

npm install react-router-dom@5.2.0(这里5.2.0是你需要的任意版本即可)

---------------------------

下面来说一下,这个 版本6 的一些小变化

Routes:

代替Switch组件,不会向下匹配
用来包裹Route
Route:

必须被Routes组件包裹
component属性变成element
caseSensitive 路径大小写敏感属性,默认是不敏感(访问/about = /ABOUT)
index 与path属性是互斥的,index表示为当前路由的根
可以用作layout组件,不写element属性,写了要与 Outlet组件配合使用(嵌套路由)
Navigate:

用来代替Redirect组件
replace属性 跳转模式 "PUSH" | "REPLACE"
只要这个组件一渲染就会发生跳转
NavLink:

className,自定义激活时的样式名 可以为字符串或者函数
end 匹配子路由时是否高亮
caseSensitive 代表匹配路径时是否区分大小写
等等

补充exact好像不能用了,exact 为true表示严格匹配,false不严格。
————————————————
版权声明:本文为CSDN博主「来两碗饭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chhpearl/article/details/125750784

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Router是一个用于构建单页面应用程序的库。它提供了一种在React应用程序中管理路由的方式。React Router DOM是React Router的一个扩展,用于在Web应用程序中进行路由。 React Router DOM 5和React Router DOM 6之间有几个重要的区别: 1. 安装方式:React Router DOM 5使用npm包管理器进行安装,命令为`npm install react-router-dom`。而React Router DOM 6使用yarn进行安装,命令为`yarn add react-router-dom@next`。 2. 路由组件:在React Router DOM 5中,使用`<Route>`组件来定义路由。而在React Router DOM 6中,使用`<Route>`组件的替代方案`<Routes>`来定义路由。 3. 路由匹配方式:React Router DOM 5使用基于路径的匹配方式来确定哪个路由应该被渲染。而React Router DOM 6引入了新的匹配方式,称为元素匹配(element matching),它可以根据组件的类型来匹配路由。 4. 嵌套路由:在React Router DOM 5中,嵌套路由需要使用嵌套的`<Route>`组件来定义。而在React Router DOM 6中,可以使用嵌套的`<Routes>`组件来定义嵌套路由。 5. 动态路由:在React Router DOM 5中,可以通过在路径中使用参数来定义动态路由。而在React Router DOM 6中,可以使用`<Route>`组件的新属性`element`来定义动态路由。 6. 错误处理:React Router DOM 5使用`<Switch>`组件来处理路由匹配错误。而React Router DOM 6使用`<Routes>`组件的新属性`fallback`来处理路由匹配错误

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值