首页 > 解决方案 > 为什么我可以在 locahost 之后去任何路线,并获得我的主页?

问题描述

我正在创建一个 ReactJs 应用程序,该应用程序使用 REST API 获取 pokemon 统计信息、名称和图片,但是,当我尝试使用 React Router 设置我的路由时,我能够导航到任何提供的路由,但我得到的是相同的我在 localhost:3000/ 之后请求的任何内容的主页

我在 GitHub 上托管了我的项目,请参考“ https://github.com/abhinav-anshul/Pokedex-A-collection-of-Pokemons

要小心,我从我的项目结构中删除了我的 Route.js 文件,以查看我是否能够访问任何链接,是的,我仍然可以访问 localhost:3000/ 之后的任何链接,例如“localhost:3000/doesnotexist” ",我仍然得到我的主页,即 "index.js"

// 这是我删除的 Route.js 文件,因为即使在“localhost:3000/pokemon”,我也会从“index.js”将相同的页面渲染到屏幕上

import ReactDOM from "react-dom";
import "./components/Navbar";
import { BrowserRouter, Route, Switch, Link, NavLink } from "react-router-dom";
import Navbar from "./components/Navbar";
import PokemonDetails from "./components/PokemonDetails";

const Route = () => (
  <BrowserRouter>
    <Switch>
      <Route exact path="/" component={index} />
      <Route path="/pokemon" component={PokemonDetails} />
    </Switch>
  </BrowserRouter>
);

export default Route;

标签: javascriptreactjsroutingreact-router

解决方案


我认为您应该对主页使用“确切路径”。

<Route exact path="/" component={index} />


推荐阅读