React

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > React > 使用React-Router时出现的错误

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

作者:now or never

这篇文章主要介绍了使用React-Router时出现的错误及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题描述

在配置路由时出现的问题,关于 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的作用

		 <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

总结

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

您可能感兴趣的文章:
阅读全文