如何根据用户身份验证在反应路由器中显示不同的导航栏?
How to show a different navbar in react router depending on the user authentication?
我需要根据用户身份验证呈现不同的导航栏。有一个全局导航栏,但对于下面的 Vault 组件,我想呈现一个不同的导航栏。假设用户已通过身份验证,我如何实现不同的导航栏?
class App extends Component {
render() {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<BrowserRouter>
<div>
<Navbar />
<Switch>
<Route path='/' component={Landing} exact />
<Route path='/login' component={Login} exact />
<Route path='/registration' component={Registration} exact />
<Route path='/authtest' component={AuthTest} exact />
<Route path='/home' component={Home} exact />
<Route path='/search' component={search} exact />
<Route path='/profile' component={Visualize} exact />
<Route path='/vault' component={Vault} exact />
</Switch>
</div>
</BrowserRouter>
</PersistGate>
</Provider>
);
}
}
export default App;
你可以简单地使用三进制
const[isLogin,setIsLogin]=useState(true);
<Switch>
{isLogin?<Route path="/" >
<Header1/>
</Route>
:
<Route path="/" >
<Header2/>
</Route>}
</Switch>
isLogin 是一种状态,如果用户登录渲染 Header1,如果用户未登录渲染 Header2,它将跟踪用户是否登录
我需要根据用户身份验证呈现不同的导航栏。有一个全局导航栏,但对于下面的 Vault 组件,我想呈现一个不同的导航栏。假设用户已通过身份验证,我如何实现不同的导航栏?
class App extends Component {
render() {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<BrowserRouter>
<div>
<Navbar />
<Switch>
<Route path='/' component={Landing} exact />
<Route path='/login' component={Login} exact />
<Route path='/registration' component={Registration} exact />
<Route path='/authtest' component={AuthTest} exact />
<Route path='/home' component={Home} exact />
<Route path='/search' component={search} exact />
<Route path='/profile' component={Visualize} exact />
<Route path='/vault' component={Vault} exact />
</Switch>
</div>
</BrowserRouter>
</PersistGate>
</Provider>
);
}
}
export default App;
你可以简单地使用三进制
const[isLogin,setIsLogin]=useState(true);
<Switch>
{isLogin?<Route path="/" >
<Header1/>
</Route>
:
<Route path="/" >
<Header2/>
</Route>}
</Switch>
isLogin 是一种状态,如果用户登录渲染 Header1,如果用户未登录渲染 Header2,它将跟踪用户是否登录