使用react路由器隐藏组件
Hiding components with react router
我刚开始使用React.js,我有一个关于React路由器的问题。特别是,我有点困惑在react路由器中嵌套路由意味着什么。假设我有以下代码(取自react路由器的github页面)
<Router>
<Route path="/" component={App}>
{/* Show the dashboard at / */}
<IndexRoute component={Dashboard} />
<Route path="about" component={About} />
<Route path="inbox" component={Inbox}>
<Route path="messages/:id" component={Message} />
</Route>
</Route>
</Router>
那么,当我转到链接/inbox/messages/<id>
时,收件箱组件会被隐藏吗?当你访问路由器链接时,哪些视图会隐藏,哪些视图仍在视线中?此外,如何跟踪哪些组件是隐藏的,哪些不是?
谢谢!
inbox
组件是父组件
const Inbox = ({ children }) => (
<div>
<MessageList />
{ children }
</div>
)
const Message = ({ content }) => (
<div>
{ content }
</div>
)
因此,您总是会从任何inbox
路由中看到MessageList
。这有帮助吗?
除非使用<Switch>
(可以像使用<Div>
一样将<Route>
包裹起来使用),否则react路由器将显示嵌套组件。换句话说,在您的示例中,邮件将显示在收件箱内,同时显示两者。
另一方面,<Switch>
将使其仅显示第一个匹配的<Route>
,因此在您的示例中仅显示收件箱。这是一种"隐藏"你不想被看到的元素的方法。
相关文章:
- React重新渲染但未显示正确的组件
- 使用react路由器隐藏组件
- 被 JavaScript 隐藏的必需 JSF 输入组件仍然被验证
- 显示/隐藏 ReactJS 组件而不会丢失其内部状态
- Sencha Touch 2日期选择器组件&css:如何显示隐藏的列名
- 如何在 emberjs 2.1 中隐藏像 ng-hide 这样的组件
- ExtJS.隐藏容器中的所有组件
- 用React隐藏组件
- 隐藏React组件,如何“关闭”侦听器/减少性能开销
- 隐藏动态创建的单选按钮组件
- 如何自动隐藏/显示组件
- 如何添加组件“隐藏”然后把它滑进去
- 使用angularjs隐藏和显示组件
- 使用componentDidMount隐藏/显示组件
- 在ReactJs中切换显示和隐藏组件
- 我如何隐藏一个货币's分数组件,如果它是零
- 通过react-router更改组件后,Google recaptcha隐藏
- 如何从 OWL 轮播组件中隐藏下一个和上一个
- 显示或隐藏带有多重组合框触发器的组件
- 当html组件被点击时隐藏焦点样式的问题