Javascript 登录后响应路由器重定向无法正常工作

Javascript 登录后响应路由器重定向无法正常工作,javascript,reactjs,react-router,axios,Javascript,Reactjs,React Router,Axios,我正在开发一个基本的react应用程序,包括react路由器。 我有一个带有本地存储的简单身份验证控件 在用户输入用户名和密码并单击登录后,我执行HTTP调用并使用Axios从服务器获取响应。然后我设置localStorage“user”项 为了保护路由,我实现了PrivateRoute组件,在其中检查localStorage中是否设置了“user” 我已经尝试在Axios HTTP调用中移动set Local Storage in then(),但没有任何更改 Api调用 loginUse

我正在开发一个基本的react应用程序,包括react路由器。 我有一个带有本地存储的简单身份验证控件

在用户输入用户名和密码并单击登录后,我执行HTTP调用并使用Axios从服务器获取响应。然后我设置localStorage“user”项

为了保护路由,我实现了PrivateRoute组件,在其中检查localStorage中是否设置了“user”

我已经尝试在Axios HTTP调用中移动set Local Storage in then(),但没有任何更改

Api调用

  loginUser (username,password) {
    return HTTP.post('/login',  null, { params: {
      username,
      password
    }})


    Api.loginUser(username,password)
        .then( (response) => {
            console.log("Response DATA");
            Api.saveUserData(response.data);
            this.setState({ redirect: true });
        })
渲染方法

if (this.state.redirect === true) {
    return <Redirect to='/home'/>;
}
if(this.state.redirect==true){
返回;
}
应用程序组件

    class App extends Component {

      render() {
        return (
          <Router>
            <Route path="/login" component={Login} />
            <PrivateRoute path="/home" component={Home} />
          </Router>
        );
      }
    }
    const PrivateRoute = ({ component: Component, ...rest }) => {

      const isLoggedIn = AuthService.isAuthenticated();

      return (
        <Route
          {...rest}
          render={props =>
            isLoggedIn ? (
              <Component {...props} />
            ) : (
              <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
            )
          }
        />
      )
    }
类应用程序扩展组件{
render(){
返回(
);
}
}
专用路由组件

    class App extends Component {

      render() {
        return (
          <Router>
            <Route path="/login" component={Login} />
            <PrivateRoute path="/home" component={Home} />
          </Router>
        );
      }
    }
    const PrivateRoute = ({ component: Component, ...rest }) => {

      const isLoggedIn = AuthService.isAuthenticated();

      return (
        <Route
          {...rest}
          render={props =>
            isLoggedIn ? (
              <Component {...props} />
            ) : (
              <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
            )
          }
        />
      )
    }
const PrivateRoute=({component:component,…rest})=>{
const isLoggedIn=AuthService.isAuthenticated();
返回(
伊斯洛格丁(
) : (
)
}
/>
)
}

问题似乎是:本地存储是在重定向之后设置的,因为它是空的。所以我得到的是空白页面,而不是加载主组件。如果我刷新页面,代码工作正常。

如何访问localstorage?localstorage.getItem()