首页 > 解决方案 > 当我使用上下文时,我应该在哪里以及如何使用重定向

问题描述

我想在用户正确登录时使用重定向。在上下文文件中我有(只有重要的东西):

  const [infoLog, setInfoLog] = React.useState("");
  const login = name => {
    setInfoLog(name);
  };
  <LoginInfo.Provider
      value={{
        login: login,
        logout: logout,
        infolog: infoLog
      }}
    >
      {children}
    </LoginInfo.Provider>
export const LoginInfoConsumer = LoginInfo.Consumer;

在登录文件中我有(只有重要的东西):登录方法:

 const login = () => {
    if (tempLogin.login === "Login" && tempLogin.password == "Haslo") {
      setLogged(addTempLogin.login);
    }

返回:

   <LoginPage>
        {logged != "" && (
          <div>
            <LoginInfoConsumer>
              <div>{({ login }) => <div>{login(logged)}</div>}</div>
            </LoginInfoConsumer>
          </div>
        )}

我不知道应该在哪里插入 Redirect ,我在代码的最后一部分尝试过,但我无法正确执行此操作。

标签: reactjs

解决方案


我修复了我的问题。在 LoginInfoConsumer 外面<div>破坏<Redirect> 我插入<Redirect>的所有方式

const login = name => {
    setInfoLog(name);
    return <Redirect to="/page" />;
  };

推荐阅读