在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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...