Reactjs 解决REST请求后,如何重定向用户
如果登录成功,我将尝试将用户重定向到配置文件页面 我尝试使用React路由器重定向,如下所示: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
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你可以用钩子来实现同样的效果,忘了提一下。