React项目基础搭建过程中遇到的问题

由于React Router版本的不同导致的问题 

报错信息如下:

 Line 9:18:   'Switch' is not defined    react/jsx-no-undef
 Line 13:88:  'Redirect' is not defined  react/jsx-no-undef

 问题出现的原因:

对于导入 'Switch' is not defined'Redirect' is not defined 的错误,这些是由于在 React Router 版本 6 中名称和导入方式发生了变化所致。

在 React Router 6 中,Switch 组件已被移除,而'Redirect' 组件已被重命名为 useNavigate。为了解决这些问题,你需要根据 React Router 6 的更新进行相应的修改。

解决方案:

1.在文件的顶部,导入适应 React Router6 的组件 

2.替换代码中的<Switch>组件,在React Router6中,可以使用 <Routes>组件来代替<Switch>。将所有的<Route>组件包裹在<Routes>组件中。

例如,将代码中类似一下方式的<Switch>代码:

 替换为以下形式的<Routes>代码

 注意,用 <Navigate> 组件替代了 Redirect 组件,并使用 to 属性指定了重定向的路径

React组件内容渲染不出来

控制台提示信息

index.js:7 Matched leaf route at location "/" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page

 组件渲染部分的代码如下

 问题出现的原因

 报错信息Matched leaf route at location "/" does not have an element or Component 意味着在根路径 / 匹配到了一个叶子路由,但是这个路由没有指定要渲染的元素或组件,导致默认情况下会渲染一个空的 <Outlet />,从而导致页面为空。

检查路由配置发现根路径/ 的<Route>使用了 render prop 来动态决定要渲染的内容,那么问题就可能出现在这里。首先,路由配置应该是互斥的,也就是不应该有两个路由同时匹配到相同的路径。在这个配置中,当根路径匹配到的时候,它要么渲染<NewsSandBox>组件,要么渲染一个重定向倒/login的路由。这样会导致冲突和不确定的行为。

解决方法就是要将根路径的渲染逻辑分成两个独立的路由,一个用于显示受保护的内容,一个用户重定向倒登录页面,更改过后的代码如下

 

相关推荐

  1. 项目mysql_rpt层,项目遇到code2问题

    2024-02-20 14:56:01       33 阅读
  2. vite+vue3项目遇到问题

    2024-02-20 14:56:01       19 阅读
  3. HBase 过程常见问题

    2024-02-20 14:56:01       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 14:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 14:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 14:56:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 14:56:01       20 阅读

热门阅读

  1. 基于python+mysql的宠物领养网站系统

    2024-02-20 14:56:01       27 阅读
  2. Python 进阶语法:正则表达式

    2024-02-20 14:56:01       27 阅读
  3. Android app启动优化 2

    2024-02-20 14:56:01       30 阅读
  4. 【算法 - 动态规划】力扣 691. 贴纸拼词

    2024-02-20 14:56:01       30 阅读
  5. typescript type 类型别名详解

    2024-02-20 14:56:01       31 阅读
  6. macad3d解析macad—application,commands,utils

    2024-02-20 14:56:01       27 阅读
  7. unity中UI、shader显示在3D物体前

    2024-02-20 14:56:01       28 阅读
  8. LeetCode 93. 复原 IP 地址

    2024-02-20 14:56:01       28 阅读
  9. yum方式快速安装mysql

    2024-02-20 14:56:01       29 阅读
  10. 动态规划之编辑距离(接上一个题)

    2024-02-20 14:56:01       37 阅读