使用React-Router时出现的错误及解决

 更新时间:2024年03月14日 09:15:29   作者:now?or?never  
这篇文章主要介绍了使用React-Router时出现的错误及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

问题描述

在配置路由时出现的问题,关于 Router5 和 Router6的使用区别

bundle.js:38620 Uncaught Error: A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.
    at invariant (bundle.js:38620:20)
    at Route (bundle.js:39415:11)
    at renderWithHooks (bundle.js:24114:22)
    at mountIndeterminateComponent (bundle.js:28690:17)
    at beginWork (bundle.js:30148:20)
    at HTMLUnknownElement.callCallback (bundle.js:12074:18)
    at Object.invokeGuardedCallbackDev (bundle.js:12123:20)
    at invokeGuardedCallback (bundle.js:12185:35)
    at beginWork$1 (bundle.js:34989:11)
    at performUnitOfWork (bundle.js:34163:16)

原因分析

Switch的作用

  • 通常情况下,path (路径) 和 coponent (组件) 是一一对应的关系。
  • 在默认的路由匹配规则中,如果不使用Switch,注册的所有路由都会和路径进行匹配,并且将匹配到的组件都显示出来。如下代码:如果输入路径为 /home 将会显示 Home 和 Hotel 两个组件。
  • Switch可以提高路由的匹配效率,一旦匹配上将不再继续向下匹配。
		 <Routes> 
                <Route path="/about" element={<About />}/>
                <Route path="/home" element={<Home />}/>
                <Route path="/home" element={<Hotel />}/>
              </Routes> 

Router6中的Routes

Router6 中使用了 Routes 代替了 Switch,但是细微的差别是,Router5中不使用Switch是不会报错的。

但是Router6中不使用Routes会报上述错误。

这样修改的原因有待学习??

解决方案

综上,解决方法当然是加上 Routes 呀

import React from "react";
import {BrowserRouter as Router, Routes, Route} from 'react-router-dom'
import Login from "./Login";
function Main(){
  return (
    <Router>
      <Routes>
       <Route path='/login' exact element={<Login/>} />
      </Routes>
    </Router>
  )
}
export default Main

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • React通过ref获取子组件的数据和方法

    React通过ref获取子组件的数据和方法

    这篇文章主要介绍了React如何通过ref获取子组件的数据和方法,文中有详细的总结内容和代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-10-10
  • React中Provider组件详解(使用场景)

    React中Provider组件详解(使用场景)

    这篇文章主要介绍了React中Provider组件使用场景,使用Provider可以解决数据层层传递和每个组件都要传props的问题,本文结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • 详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)

    详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)

    本篇文章主要介绍了React-Native解决键盘遮挡问题(Keyboard遮挡问题),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • react实现阻止父容器滚动

    react实现阻止父容器滚动

    这篇文章主要介绍了react实现阻止父容器滚动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • React?中?setState?的异步操作案例详解

    React?中?setState?的异步操作案例详解

    这篇文章主要介绍了React中setState的异步操作案例详解,文章围绕主题展开详细的内容介绍,具有一点点参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • react实现页面水印效果的全过程

    react实现页面水印效果的全过程

    大家常常关注的是网站图片增加水印,而很少关注页面水印,其实这个需求也是比较常见的,比如公文系统、合同系统等,这篇文章主要给大家介绍了关于react实现页面水印效果的相关资料,需要的朋友可以参考下
    2021-09-09
  • React?Context?变迁及背后实现原理详解

    React?Context?变迁及背后实现原理详解

    这篇文章主要为大家介绍了React?Context?变迁及背后实现原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • react使用useImperativeHandle示例详解

    react使用useImperativeHandle示例详解

    这篇文章主要为大家介绍了react使用useImperativeHandle示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • React?18?如何更新?state?中的对象

    React?18?如何更新?state?中的对象

    state 中可以保存任意类型的JavaScript值,包括对象,但是,不应该直接修改存放在 React state 中的对象,这篇文章主要介绍了React?18更新state中的对象,需要的朋友可以参考下
    2023-08-08
  • 聊聊React onClick 传递参数的问题

    聊聊React onClick 传递参数的问题

    很多朋友向小编反映一个问题关于React onClick 传递参数的问题,当点击删除按钮需要执行删除操作,针对这个问题该如何处理呢?下面小编给大家带来了React onClick 传递参数的问题,感兴趣的朋友一起看看吧
    2021-10-10

最新评论

?


http://www.vxiaotou.com