微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在React中重定向到相同的登录路由

如何解决在React中重定向到相同的登录路由

我正在尝试创建一条私有路由,当用户登录时,它将通过/ authentication路由登录后刷新并重定向到同一组件,否则,如果他已经登录,则直接进入组件

import React,{ useContext,useEffect } from "react";
import { Route,Redirect } from "react-router-dom";
import AuthContext from "../auth/AuthContext";
import Layout from "../layout/Layout"

const PrivateRoute = ({ component: Component,...rest }) => {
  const authContext = useContext(AuthContext);

  const { isAuthenticated } = authContext;

  return (
    <Route
      {...rest}
      render={props =>(
        <Layout>
        {!isAuthenticated ? (
          <Redirect to={`/authentication?redirect=${props.location.pathname}${props.location.search}`} />
        ) : (
          <Component {...props} />
        )}
        </Layout>
      )}
    />
  );
};

export default PrivateRoute;

/ authentication是进入登录页面的路径。

当前,该程序可以正常工作,直到正确进入路线为止。

例如:http:// localhost:3000 / authentication /?redirect = / live

但是当用户通过此帐户登录时...不会重定向到/ live而是停留在该位置。

怎么了?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。