我想所有的路由,除了那些登记在下面的直接我到主页.

例子:

testexample.com/contact

->将我返回到联系人页面

例如.com/sdlskdsd

->路由不存在,返回主页


import { 
  BrowserRouter,
  Routes,
  Route
} from 'react-router-dom'
import Footerpage from './components/footerpage/Footerpage';
import Navegation from './components/navegation/Navegation';
import Homepage from './pages/Homepage';
import Contact from './pages/contact/Contact';
import Bookpage from './pages/bookpage/Bookpage';
import Success from './pages/contact/status/Success';
import Error from './pages/contact/status/Error';

function App() {
  return (
    <BrowserRouter>
      <Navegation />
        <Routes>
          <Route path='/' exact element={<Homepage />} />
          <Route path='/contact' exact element={<Contact />} />
          <Route path='/contactsuccess' exact element={<Success />} />
          <Route path='/contacterr' exact element={<Error />} />
          <Route path='/bookpage' exact element={<Bookpage />} />
        </Routes>
      <Footerpage />
    </BrowserRouter>  
  );
}

export default App;

推荐答案

使用Navigate组件将未知/未处理的路由重定向到"/"路径.

<Route path="*" element={<Navigate to="/" replace />} />

此外,在RRDv6中,所有路由现在都是always完全匹配的,不再有任何exactprops ,所以这些props 都应该被移除.

完整路由示例:

import { 
  BrowserRouter,
  Routes,
  Route,
  Navigate
} from 'react-router-dom';

...

<Routes>
  <Route path='/' element={<Homepage />} />
  <Route path='/contact' element={<Contact />} />
  <Route path='/contactsuccess' element={<Success />} />
  <Route path='/contacterr' element={<Error />} />
  <Route path='/bookpage' element={<Bookpage />} />
  <Route path="*" element={<Navigate to="/" replace />} /> // <-- redirect
</Routes>

Javascript相关问答推荐

TypScript界面中的Infer React子props

django无法解析余数:[0] from carray[0]'

如何在不创建新键的情况下动态更改 map 中的项目?

如何使覆盖div与可水平滚动的父div相关?

可更改语言的搜索栏

如何在我的Next.js项目中.blob()我的图像文件?

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

有没有办法通过使用不同数组中的值进行排序

在HTML5画布上下文中使用putImageData时,重载解析失败

在将元素追加到DOM之前,createElement()是否会触发回流?混淆abt DocumentFragment行为

我们是否可以在reactjs中创建多个同名的路由

每隔一行文本段落进行镜像(Boustrophedon)

JSON Web令牌(JWT)错误:RSA密钥对的签名无效

如何在Java脚本中添加一个可以在另一个面板中垂直调整大小的面板?

如何从图表中映射一组图表-js使用REACT

TS node 找不到依赖的模块

在Java脚本/类型脚本中覆盖父构造函数中的默认值

Mongoose DeleteOne()和DeleteMany()不工作