【问题标题】:Routing To another page is not happening without refreshing after clicking on the link in React单击 React 中的链接后,如果不刷新,则不会发生路由到另一个页面
【发布时间】:2021-10-22 13:39:34
【问题描述】:

我在 React 中有一个导航栏,代码如下

import './App.css';
import { BrowserRouter as Router, Route, Link, Switch } from 'react-router-dom';
import Header from './components/header/Header';
import Home from './components/home/Home';
import About from './components/about/About';
import Accessories from './components/accessories/Accessories';
import Category1 from './components/accessories/categories/Category1';
import Category2 from './components/accessories/categories/Category2';
import Category3 from './components/accessories/categories/Category3';
import Category4 from './components/accessories/categories/Category4';
import Contact from './components/contact/Contact';
import Footer from './components/footer/Footer';

const App = () => {
    return (
        <div className="App">
            <Header />
            <Router>
                <Switch>
                    <Route exact path="/">
                        <Home />
                        <About />
                        <Accessories />
                        <Contact />
                    </Route>
                    <Route exact path="/category1">
                        <Category1 />
                    </Route>
                    <Route exact path="/category2">
                        <Category2 />
                    </Route>
                    <Route exact path="/category3">
                        <Category3 />
                    </Route>
                    <Route exact path="/category4">
                        <Category4 />
                    </Route>
                </Switch>
            </Router>
            <Footer />
        </div>
    );
}

export default App;

我可以从/ 顺利转到/category1,但是当我从/category1 重新路由到/ 时,在刷新页面之前不会发生重新渲染。 我不知道现在该怎么办。感谢您提前提供任何帮助

已编辑:我只是将所有Links 更改为锚标记,现在它们正在工作,但这是一个好习惯吗?

【问题讨论】:

  • 您能解释一下您是如何从一条路线导航到另一条路线的吗?你在使用Link 组件吗?
  • 是的,我正在使用Link 从一个页面导航到另一个页面。
  • 我只是将我所有的Links 更改为锚标签,现在它们正在工作,但这是一个好习惯吗?

标签: javascript reactjs react-router react-router-dom


【解决方案1】:
                    <Route exact path="/">
                        <Home />
                        <About />
                        <Accessories />
                        <Contact />
                    </Route>

在所有路由都定义好之后再放上面的代码就可以了

          <Switch>
            <Route exact path="/category1">
                <Category1 />
            </Route>
            <Route exact path="/category2">
                <Category2 />
            </Route>
            <Route exact path="/category3">
                <Category3 />
            </Route>
            <Route exact path="/category4">
                <Category4 />
            </Route>
            <Route exact path="/">
                <Home />
                <About />
                <Accessories />
                <Contact />
            </Route>
        </Switch>

'/'路径应该在所有路径都定义好后最后定义

【讨论】:

  • 感谢您的回答,但问题仍然存在。
【解决方案2】:

您必须使用该元素重定向到其他路线。在“/category1”中,可以使用该元素重定向“/”而不需要重新加载页面。

【讨论】:

  • 有什么办法可以使用Link
猜你喜欢
  • 1970-01-01
  • 2019-11-28
  • 1970-01-01
  • 2016-06-15
  • 2020-07-27
  • 1970-01-01
  • 2014-08-24
  • 2021-12-13
  • 2019-02-24
相关资源
最近更新 更多