然后在异步函数内返回重定向

时间:2019-11-08 09:30:31

标签: reactjs

我使用axios开发了登录服务功能。在我的登录组件中,当我单击登录按钮时,我会调用该服务。

一切正常,但有一个例外:页面未重定向到/ home(存在路由)。

const loginRequest = async () => {
    return await loginService(username, password).then(
        (loginResponse) => {
            console.log('loginResponse', loginResponse);

            if(loginResponse.status == 'success') {
                setError('')
                return <Redirect to='/home'  />
            } else {
                setError('authenticate_failed')
            }
        }
    )
}

我的路由是这样的:

<Router>
    <Switch>
      <Route exact path="/home" component={Home} />
      <Route exact path="/login" component={Login} />
    </Switch>
</Router>

我想念什么?

1 个答案:

答案 0 :(得分:2)

在loginRequest下返回Redirect时,它只是登录按钮的onClick函数的返回值。 不是渲染功能。

您应该使用路由器重定向到登录页面。

this.props.history.push('/home')