我是React / Redux / Router的新手,很想知道是否可以这样做:
if (user.loggedIn) {
// redirect to '/dashboard'
} else {
// redirect to '/'
}
我想限制dashboard
访问current user
。如果我将www.mysite.com/dashboard
复制到另一个浏览器,它将重定向到www.mysite.com/
。
理想情况下,user.loggedIn
州将被确定为客户端。
怎么做?
考虑到user.loggedIn
在客户端可用,这可以通过使用路由器的简单重定向来实现。
<Route exact path="/" render={() => (
user.loggedIn ? (
<Redirect to="/dashboard"/>
) : (
<HomePage />
)
)}/>
请参考https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/Redirect.md
您可以使用许多不同的模式来实现此目的。我会考虑以下几点:
prop
的isLoggedIn
映射到您的Redux商店中的state.auth.user != null
或类似物。/
或/Dashboard
路线。