【发布时间】:2019-12-05 06:25:33
【问题描述】:
在这里反应新手。我想使用 React Router 创建一个侧面导航栏,而不是根据单击的任何链接呈现组件。我对如何以及在何处放置浏览器路由器越来越感到困惑。
这是我的 index.js 文件的 sn-p
ReactDOM.render(<Header/>, document.getElementById('header'));
ReactDOM.render(<SideBar/>, document.getElementById('sidebar'));
ReactDOM.render(<Footer/>, document.getElementById('footer'));
还有一个 ID = mainBody 的元素,我想在其中渲染组件,这些组件取决于我在侧边栏上单击的内容而添加/替换。
我现在有一个标题组件想要更改。
下面是SideBar组件导入的一个组件SideNav。这会处理路由链接。
<BrowserRouter>
<li className="st-bottom-line">
<Link to="/Dashboard">Dashboard </Link>
</li>
<li className="st-bottom-line">
<Link to='/Configuration'> Configuration </Link>
</li>
<div>
<Route path="/Dashboard" render={(props) => <Heading {...props} name={`Dashboard`} />} />
<Route path="/Configuration" render={(props) => <Heading {...props} name={`Configuration`} />} />
</div>
</BrowserRouter>
您可以想象,现在当我单击两个链接中的任何一个时,标题组件就会出现在 SideBar 本身中。
我应该进行哪些更改以使标题出现在另一个组件中?我已经看过无数的 sidenav 和路由示例,但我仍然很困惑,因为我尝试制作的内容在结构上有所不同。
提前谢谢你!
【问题讨论】:
-
请为mainBody添加代码
-
@JatinParmar 目前没有任何 mainBody 代码。我只是在我的 index.html 文件中创建了一个具有该 ID 的 div。 (我正在使用 create-react-app 创建这个应用程序)。我的想法是简单地使用元素 ID 并在其中渲染元素
标签: reactjs react-router