reactjs - 如何将 React Route 中的组件渲染到与 root 不同的 div
问题描述
我有一个带有反应路由器的 App 主要组件:
function App() {
return (
<Router>
<NavBar />
<Switch>
<Route path="/screenings" exact component={SPT} />
<Route path="/registerpage" exact component={RegisterPage} />
<Route path="/loginpage" exact component={LoginPage} />
<Route path="/logout" exact component={LoginPage} />
</Switch>
</Router>
);
}
在主 index.js 中,我渲染了该组件:
ReactDOM.render(<App />, document.getElementById('root'));
目前,当我单击路由器中链接的导航组件中的任何链接时,会在div 元素bar/route
中的导航栏正下方呈现。root
但是,我想将这些组件渲染到mainpage
设置在 div 下方的root
div 中,以便导航栏和页面的其余部分明显分开(放置在 2 个不同的 div 中)。有什么办法吗?
解决方案
mainpage
我不会说如果该元素低于该元素就不可能获取内容root
,但是您会以这种方式使其变得不必要地困难。
如果情况只是您想将它们分成两个不同的 div,为什么不将开关包装在一个 div 中呢?这样,每条路线都将在<div id='mainpage'>
元素中呈现。
function App() {
return (
<Router>
<NavBar />
<div id='mainpage'>
<Switch>
<Route path="/screenings" exact component={SPT} />
<Route path="/registerpage" exact component={RegisterPage} />
<Route path="/loginpage" exact component={LoginPage} />
<Route path="/logout" exact component={LoginPage} />
</Switch>
</div>
</Router>
);
}
推荐阅读
- javascript - JavaScript:在窗口最小化时监听按键
- aspose - 使用 Aspose 读取条形码
- python - L2点星历(天体力学)
- serial-port - 在没有 ttyUSB 串行连接的情况下,两个 Arduino 之间通过 RF 433MHz 传输的数据不会显示在 TFT LCD1.8 上
- azure - Azure 块 blob 未提交的更新行为
- python - Numpy 切片数组 A 使用布尔数组 B
- xml - xsl 优先配置文件
- angular - Angular 应用程序未从 docker-compose.yml 文件运行
- linux - 在 Linux 上运行 Monodevelop-Stable 的问题
- yarnpkg - 如何验证 Yarn 的完整性检查确实有效?