我的应用程序组件重定向一个使用的基于如果他们登录= true,我在尝试了各种方法后使用了一个在线示例,如果有更简单的功能react方式来做到这一点,请告诉我,
如果用户已登录,我希望他们转到 /createpost 否则我希望他们转到 /login 路由,我想保护用户必须登录的 /createpost 路由,但这是另一个任务,虽然想法赞赏..
沙箱:https : //codesandbox.io/s/focused-sammet-eitqr
我的应用程序组件
const App = () => {
return (
<Router>
<Switch>
<Route component={Navbar} />
<Route exact path="/Home" component={Home} />
<Route exact path="/posts" component={ViewPost} />
<Route exact path="/login" component={Login} />
<Route exact path="/register" component={Register} />
<PrivateRoute
path="/createpost"
component={CreatePost}
isAuthenticated={false}
/>
</Switch>
</Router>
);
};
私有路由组件
export const PrivateRoute = ({
component: Component,
isAuthenticated,
...rest
}) => (
<Route
{...rest}
render={props =>
isAuthenticated ? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: "/login",
state: { from: props.location }
}}
/>
)
}
/>
);