Reactjs 解决REST请求后,如何重定向用户

Reactjs 解决REST请求后,如何重定向用户,reactjs,rest,redirect,react-router,Reactjs,Rest,Redirect,React Router,如果登录成功,我将尝试将用户重定向到配置文件页面 我尝试使用React路由器重定向,如下所示: signInWithEmailAndPassword = (username, password) => { return new Promise((resolve, reject) => { axios.post(process.env.REACT_APP_BACK_END_DOMAIN + urls.LOGIN, { username, passwo

如果登录成功,我将尝试将用户重定向到配置文件页面

我尝试使用React路由器重定向,如下所示:

signInWithEmailAndPassword = (username, password) => {
  return new Promise((resolve, reject) => {
    axios.post(process.env.REACT_APP_BACK_END_DOMAIN + urls.LOGIN, {
      username,
      password,
    },
    {
      headers: {
        'X-CSRFTOKEN': Cookies.get("csrftoken"),
      }
    }).then(response => {
        console.log(response);
        if(response.status =='200'){
          return <Redirect to='/profile' />
        }
    });
  });
};
使用电子邮件和密码登录=(用户名、密码)=>{
返回新承诺((解决、拒绝)=>{
axios.post(process.env.REACT\u APP\u BACK\u END\u DOMAIN+url.LOGIN、{
用户名,
密码,
},
{
标题:{
“X-CSRFTOKEN”:Cookies.get(“CSRFTOKEN”),
}
})。然后(响应=>{
控制台日志(响应);
如果(response.status='200'){
返回
}
});
});
};
但是当登录成功时,什么也没有发生


我不知道我做错了什么。

如果您使用的是React Router 4,则需要在历史对象上使用push方法或在渲染函数中写入

import history from '../history';

history.push('/profile');

我通过以下方式实现了这一点

1) 采用类似于
this.state={redirectStatus:false}

2) 检查状态代码时,将状态设置为
true
,就像
this.setState({redirectStatus:true})
(如果状态代码为200)

3) 最后,你可以在承诺之外做这样的事情

if(redirectStatus ) {
return <Redirect to='/profile' />
}
if(重定向状态){
返回
}

console.log显示什么?不重要,console.log中的状态代码是200,并且在后端登录成功。安装
重定向
尝试
此.props.history.push('/profile')
。该组件中可能没有状态的副本,纯粹是functional@octa你可以用钩子来实现同样的效果,忘了提一下。