简体   繁体   English

单击时反应路由器链接不更新端点

[英]React Router Link not updating endpoint when clicked

I'm trying to setup a basic React app using Router.我正在尝试使用 Router 设置一个基本的 React 应用程序。 However, when you click on a Link tag, it will render the correct component of EpisodeDisplay but, the endpoint will not update.但是,当您单击链接标签时,它会呈现 EpisodeDisplay 的正确组件,但端点不会更新。 I've tried changing the Route paths as well as updating the Link endpoints.我试过更改路由路径以及更新链接端点。 When I manually type in the endpoint though (localhost:3000/season1), the MainPage will render.当我手动输入端点时 (localhost:3000/season1),MainPage 将呈现。 I'm at a loss on how to correct this issue.我不知道如何纠正这个问题。

Any help would be greatly appreciated!任何帮助将不胜感激!

App应用程序

 import React from "react"; import MainPage from "../MainPage/MainPage"; import "./App.scss"; import { Route, Switch } from "react-router-dom"; import EpisodeDisplay from "../EpisodeDisplay/EpisodeDisplay"; const App = () => { return ( <> <Switch> <Route exact path="/" render={() => <MainPage />} /> <Route exact path="/:season" render={() => <EpisodeDisplay />} /> </Switch> </> ); }; export default App;

MainPage主页

 import React, { useEffect, useState } from "react"; import Seasons from "../Seasons/Seasons"; import { getSeasons } from "../../APIcalls"; import { Link } from "react-router-dom"; import "./MainPage.scss"; const MainPage = () => { return ( <div className="div-bg"> <p> ANIMEtrics <br /> For My Hero Academia Fanatics </p> <div className="season-div"> <Link className="link" to={"/season1"}> <article className="season-card" data-value="season-1"> Season 1 </article> </Link> <Link className="link" to={"/season2"}> <article className="season-card" data-value="season-2"> Season 2 </article> </Link> <Link className="link" to={"/season3"}> <article className="season-card" data-value="season-3"> Season 3 </article> </Link> <Link className="link" to={"/season4"}> <article className="season-card" data-value="season-4"> Season 4 </article> </Link> <Link className="link" to={"/season5"}> <article className="season-card" data-value="season-5"> Season 5 </article> </Link> <Link className="link" to={"/movies"}> <article className="season-card" data-value="movies"> Movies </article> </Link> </div> </div> ); }; export default MainPage;

Episode Display剧集显示

 import React from 'react'; const EpisodeDisplay = () => { return ( <h1>Episode Display</h1> ) } export default EpisodeDisplay;

Can you try wrapping content inside App.js with BrowserRouter as below您可以尝试使用 BrowserRouter 将内容包装在 App.js 中,如下所示

 import React from "react"; import MainPage from "../MainPage/MainPage"; import "./App.scss"; import { Route, Switch, BrowserRouter as Router } from "react-router-dom"; import EpisodeDisplay from "../EpisodeDisplay/EpisodeDisplay"; const App = () => { return ( <> <Router> <Switch> <Route exact path="/" render={() => <MainPage />} /> <Route exact path="/:season" render={() => <EpisodeDisplay />} /> </Switch> </Router> </> ); }; export default App;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM