javascript - 我的 React Router 中的“链接到”不起作用

我在使用“链接到”路由我的 React 应用程序时遇到问题。我已经浏览了所有代码,但找不到任何错误。路径更新得很好,但它没有路由到页面,只是停留在同一页面上。

这是 Navbar.js 组件:

import { Link } from "react-router-dom";

const Navbar = () => {
    return (
        <nav className="navbar">
            <h1>The Mane Blog</h1>
            <div className="links">
                <Link to="/">Home</Link>
                <Link to="/create">New Blog</Link>
            </div>

        </nav>
    );
}
 
export default Navbar

这是 App.js 组件

import React from 'react';
import Navbar from './Navbar';
import Home from './Home';
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';
import Create from './Create';

function App() {
  return (
    <Router>
      <div className="App">
        <Navbar />
        <div className="content">
          <Switch>
            <Route exact path='/'>
              <Home />
            </Route>
            <Route path='/Create'>
              <Create />
            </Route>
          </Switch>
        </div>
      </div>
    </Router>
  );
}

export default App;

这是我的 package.json

{
  "name": "router",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.4",
    "@testing-library/react": "^13.2.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.1.0",
    "react-dom": "^18.1.0",
    "react-router-dom": "^5.3.1",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

当我用锚标签替换“链接到”时,如下所示:

<a href="/">Home</a>
<a href="/create">New Blog</a>

它工作正常。我只是不知道出了什么问题。

回答1

如果你使用 react-router 最新版本。您可以轻松地将一页转到另一页。您需要更改零件

<Switch>
    <Route exact path='/'>
        <Home />
     </Route>
     <Route path='/Create'>
       <Create />
     </Route>
</Switch>

并添加此代码

<BrowserRouter>
  <div className="App">
    <Navbar />
    <div className="content">
      <Router>
        <Route path='/' element={<Home />} />
         <Route path='/Create' element={<Create />} />
      </Router>
    </div>
  </div>
</BrowserRouter>

和从'react-router-dom' 导入路由器

import {BrowserRouter ,Router, Route, Switch} from 'react-router-dom';

相似文章

随机推荐

最新文章