重定向工作,即使它不应该呈现

Redirect works even though it shouldn't render

我正在为我的 React 应用程序授权,如果用户已登录,我会从 /auth 路由进行重定向。注销后,重定向仍然有效,甚至认为 isLoggedIn 来自 Api 的值肯定会改变(用 console.log 确认)

我真的不知道为什么,所以我只尝试改变一些Api方法,isLoggedIn之前是一个object的get属性,现在它是函数。

function Auth(){
    return (
        <div>
            <Header theme="light"/>

            <Switch>
                {Api.Auth.isLoggedIn() && <Redirect to={routes.home}/>}
                <Route path={routes.login} component={Login}/>
                <Route path={routes.register} component={Register}/>
            </Switch>
        </div>
    );
}

Api:

isLoggedIn() {
    console.log(this._token, !!this._token); // test, returns false everytime, but redirect works...
    return !!this._token;
  },
logout(){
    this._token = null;
    this._axiosSetToken('');
    try {
      window.localStorage.removeItem('token');
    } catch (e) {
      console.error(e);
    }
  }

我还有一件事正在使用相同的登录检查(显示或现在的配置文件 link 和 header 中的头像,但它工作正常并且出现登录按钮。

F5(页面重新加载)后一切正常,无论我在注销之前或之后重新加载页面都没有关系 - 它会工作。

正如有人对我说的,通常你应该在注销后重新加载页面,如问题所述 - 重新加载后工作。