如何在 React 的分层组件中使用 {Switch, Route}?
How to use {Switch, Route} in hierarchical components in React?
我在 App.js 中有路由,主要是注销、登录和主页。
里面 App.js :
return(
<>
<Switch>
<Route exact path='/' component={Home} />
<Route exact path='/signin' component={Signin} />
<Route exact path='/logout' component={Logout} />
</Switch>
</>)
此外,我想要 Home.js 内的路由:
return(
<>
<Navbar/>
<Switch>
<Route exact path='/'>
<LandingPage />
</Route>
<Route exact path='/settings'>
<Settings username={username} />
</Route>
</Switch>
</>
)
主页默认LandingPage组件,Navbar在LandingPage和Settings中通用。
LandingPage 组件显示完美,但是当我从 Navbar 单击“设置”按钮时,设置组件未显示。其他路线工作正常。
在 Navbar 中,我使用了 NavLink:
<NavLink className="nav-link" to="/">
HOME
</NavLink>
<NavLink className="nav-link" to="/settings">
SETTINGS
</NavLink>
为什么设置组件没有显示???
<Route exact path='/' component={Home} />
由于 exact
标志,任何不完全 "/"
的内容都不会与此匹配。因此,当 url 变为 "/settings"
时,您将停止渲染 Home 组件,这反过来意味着没有任何东西试图在“/settings”
处渲染路由
可能的解决方法是删除确切的内容,并重新排列您的组件,因此这种情况出现在符号 in/sign 之后:
<Switch>
<Route exact path='/signin' component={Signin} />
<Route exact path='/logout' component={Logout} />
<Route path='/' component={Home} />
</Switch>
我在 App.js 中有路由,主要是注销、登录和主页。
里面 App.js :
return(
<>
<Switch>
<Route exact path='/' component={Home} />
<Route exact path='/signin' component={Signin} />
<Route exact path='/logout' component={Logout} />
</Switch>
</>)
此外,我想要 Home.js 内的路由:
return(
<>
<Navbar/>
<Switch>
<Route exact path='/'>
<LandingPage />
</Route>
<Route exact path='/settings'>
<Settings username={username} />
</Route>
</Switch>
</>
)
主页默认LandingPage组件,Navbar在LandingPage和Settings中通用。
LandingPage 组件显示完美,但是当我从 Navbar 单击“设置”按钮时,设置组件未显示。其他路线工作正常。
在 Navbar 中,我使用了 NavLink:
<NavLink className="nav-link" to="/">
HOME
</NavLink>
<NavLink className="nav-link" to="/settings">
SETTINGS
</NavLink>
为什么设置组件没有显示???
<Route exact path='/' component={Home} />
由于 exact
标志,任何不完全 "/"
的内容都不会与此匹配。因此,当 url 变为 "/settings"
时,您将停止渲染 Home 组件,这反过来意味着没有任何东西试图在“/settings”
可能的解决方法是删除确切的内容,并重新排列您的组件,因此这种情况出现在符号 in/sign 之后:
<Switch>
<Route exact path='/signin' component={Signin} />
<Route exact path='/logout' component={Logout} />
<Route path='/' component={Home} />
</Switch>