React Router 在路由推送时更新子组件
React Router update subcomponent upon route push
我有这样的组件
class myApp extends React.Component {
return (
<div>
<NavigationBar />
{/* dynamic_content */}
</div> )
}
这条路线
<Router>
<Route exact path="/" component={myApp}/>
</Router>
加载正常。
我想要实现的是当 url 发生变化时,例如
/profile
/notifications
dynamic_content
已更新,但实际上并未转换到另一个组件。
在伪代码中,我想要的是
class myApp extends React.Component {
return (
<div>
<NavigationBar />
{route === '/profile' -> <Profile/>
route === '/notification' -> <Notification/>}
</div> )
这可能吗?
我该怎么做?
是的,这是可能的,你需要的是像这样定义嵌套的路由
class MyApp extends React.Component {
return (
<div>
<NavigationBar />
{/* dynamic_content */}
<Route path='/profile' component={Profile}/>
<Route path="/notification" component={Notification}/>
</div> )
}
并在没有 exact
道具的情况下配置您的父路由
<Router>
<Route path="/" component={MyApp}/>
</Router>
此外,您必须以大写字符作为第一个字母来定义您的组件
我有这样的组件
class myApp extends React.Component {
return (
<div>
<NavigationBar />
{/* dynamic_content */}
</div> )
}
这条路线
<Router>
<Route exact path="/" component={myApp}/>
</Router>
加载正常。
我想要实现的是当 url 发生变化时,例如
/profile
/notifications
dynamic_content
已更新,但实际上并未转换到另一个组件。
在伪代码中,我想要的是
class myApp extends React.Component {
return (
<div>
<NavigationBar />
{route === '/profile' -> <Profile/>
route === '/notification' -> <Notification/>}
</div> )
这可能吗?
我该怎么做?
是的,这是可能的,你需要的是像这样定义嵌套的路由
class MyApp extends React.Component {
return (
<div>
<NavigationBar />
{/* dynamic_content */}
<Route path='/profile' component={Profile}/>
<Route path="/notification" component={Notification}/>
</div> )
}
并在没有 exact
道具的情况下配置您的父路由
<Router>
<Route path="/" component={MyApp}/>
</Router>
此外,您必须以大写字符作为第一个字母来定义您的组件