登录以重定向到其他页面

Posted

技术标签:

【中文标题】登录以重定向到其他页面【英文标题】:Login to redirect to other page 【发布时间】:2021-11-06 05:29:16 【问题描述】:

单击Login 按钮后,我无法从登录页面重定向到/profile 页面。我该如何解决?

import React from "react";
import  useHistory  from "react-router-dom";

function Login() 
  const history = useHistory();

  function checkLogin() 
    const loginFormUser = document.getElementById("login-form-user");
    const loginFormPassword = document.getElementById("login-form-password");
    const loginButton = document.getElementById("login-form-submit");
    loginButton.addEventListener("click", () => 
      const username = loginFormUser.username.value;
      const password = loginFormPassword.password.value;

      if (username === "toilacoder" && password === "123456") 
        return history.push("/profile");
       else 
        return history.push("/home");
      
    );
  

  return (
    <form onSubmit=checkLogin>
      <h2>Please login to get access to your profile.</h2>
      <input type="text" placeholder="Username" id="login-form-user" />
      <input
        type="password"
        placeholder="Your password"
        id="login-form-password"
      />
      <button id="login-form-submit" type="submit">
        Login
      </button>
    </form>
  );

export default Login;

【问题讨论】:

我会这样做的。谢谢,先生! 这能回答你的问题吗? ***.com/questions/11563638/… 删除 .username.password 作为错字。您也可以为此 reactjs.org/docs/refs-and-the-dom.html 使用 refs 它没有将我重定向到 /profile 但它重新加载并给我“/login?” 【参考方案1】:

您应该将事件参数传递给您的 checkLogin 函数。 然后,您将使用它通过调用preventDefault 函数来防止表单提交的默认行为。

另外,addEventListener 也没用,因为您已经在单击按钮时触发了 checkLogin 函数。

最后,在使用getElementById 检索元素后,您可以在不指定usernamepassword 属性的情况下从DOM 元素中检索值。

尝试像这样更改您的代码:

function checkLogin(e) 
  e.preventDefault();

  const loginFormUser = document.getElementById("login-form-user");
  const loginFormPassword = document.getElementById("login-form-password");

  const username = loginFormUser.value.trim();
  const password = loginFormPassword.value.trim();

  if (username === "toilacoder" && password === "123456") 
    history.push("/profile");
   else 
    history.push("/home");
  

【讨论】:

以上是关于登录以重定向到其他页面的主要内容,如果未能解决你的问题,请参考以下文章

如何给一个href以重定向到wordpress中的页面?

如果他没有登录,如何将用户重定向到网站中的特定页面?

单击按钮以重定向到父 URL

如何更改我的注销路线以重定向到我的主页

当我有“下一个”网址时,如何禁用网址重定向? - 姜戈

如何在struts 2中处理未映射的操作以重定向到某个合适的错误页面?