反应路由器V6-未发现组件不能与动态参数/段塞一起工作?

我已经安装了"react-router-dom": "^6.0.0-beta.0"并创建了一些页面路由。如果页面不存在,则面临Page404/NotFound组件无法工作的问题。由于某种原因,当我使用动态页面/帖子slug时,如果没有具有此ID的页面/帖子,NotFound组件将无法工作。

Reaction路由器内部是否有解决此问题的选项?

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

import AllPosts from "components/AllPosts";
import SinglePost from "components/SinglePost";
import NotFound from "components/Page404";

const App = () => (
  <Router>
    <Routes>
      <Route element={<AllPosts />} path="/" exact />
      <Route element={<SinglePost />} path="/:slug" />
      <Route element={<NotFound />} path="*" />
    </Routes>
  </Router>
);

export default App;

解决方案

  1. 尝试删除Exact,因为已从V6中删除,并确保Page404是正确的组件或创建Notfin.jsx

  2. 检查帖子是否不存在,然后重定向到NotFound页面。

相关文章