【问题标题】:How to work with Route and Link in two Components in ReactJS如何在 ReactJS 的两个组件中使用 Route 和 Link
【发布时间】:2020-02-15 00:56:41
【问题描述】:

This will be my full view both components together 我创建了两个组件,一个用于侧栏,一个用于主视图。我在侧边栏组件中有我的链接,在主视图组件中有路由。我的问题是我需要将它们都放在一个路由器(BrowserRouter)中还是我可以在两个组件中使用两个路由器。

当我像这样在同一个路由器中使用路由和链接时,它工作正常。 这是我的主视图

render() {
        return (
            <div > 
               <Router>
                <SideBar  />
                <div className="content-page">
                    <div className="content">
                        <TopBar/>


                                <Route exact path={'/home'} component={Index}/>
                                <Route exact path={'/user'} component={User}/>

                        </Router>
                    </div>
                    <Footer/>
                </div>
             </Router>
            </div>
        );
    }

当我使用它时,是否可以在两个组件中使用两个路由器它不起作用。 这是我的主视图并包含链接。

render() {
        return (
            <div >
                <SideBar  />
                <div className="content-page">
                    <div className="content">
                        <TopBar/>
                        <Router>

                                <Route exact path={'/home'} component={Index}/>
                                <Route exact path={'/user'} component={User}/>

                        </Router>
                    </div>
                    <Footer/>
                </div>

            </div>
        );
    }

这是我的侧边栏

render() {
        return (
            <div>
<Router>
                 <Link to={'/home'} >Home</Link>
</Router>
            </div>
}

是否可以使用两个路由器(BrowserRouter)或者我只能使用一个。如果我只能使用一个,那么在其中使用大量内容是否可以。

【问题讨论】:

  • 是的,使用一个路由器处理大量内容很好,路由器是路由的父包装组件
  • 谢谢 kishan 我是 React 新手,所以我知道是否可以在两个组件中使用两个路由器并作为一个组件工作
  • @Ksamanpriya 我发布了一个用于反应路由检查的示例组件,以便您更好地理解stackoverflow.com/a/58444077/6544460

标签: reactjs


【解决方案1】:

使用 react router dom

的演示应用程序
import React from "react";
import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom";

export default function App() {
  return (
    <Router>
      <div>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/about">About</Link>
          </li>
        </ul>
        <hr />
        <Switch>
          <Route exact path="/">
            <Home />
          </Route>
          <Route path="/about">
            <About />
          </Route>
        </Switch>
      </div>
    </Router>
  );
}
function Home() {
  return <h2>Home</h2>;
}

function About() {
  return <h2>About</h2>;
}

为了更好地理解概念,请尝试通过官方reacttraining.com

【讨论】:

  • 这是我已经知道的。我想知道的是是否可以在两个路由器(BrowserRouter)内使用两个组件,一个带有链接,一个带有路由,并作为一个组件工作。如果可能的话怎么做。谢谢
  • @Ksamanpriya 您可以分享您的要求的屏幕截图以进行更多说明。你到底在创造什么。?
  • 我在问题中添加了一张图片,请您参考一下。
猜你喜欢
  • 2020-08-05
  • 2018-06-25
  • 1970-01-01
  • 2018-07-21
  • 2016-11-06
  • 2020-11-18
  • 1970-01-01
  • 2020-12-06
  • 2020-03-06
相关资源
最近更新 更多