ReactJs|登录需要刷新



我的登录页面不工作,需要刷新才能登录。输入数据显示在控制台中,带有201,但我必须手动刷新页面才能继续。

这是我的登录js:

export default class Login extends Component {
state = {};
submitHandler = e => {
e.preventDefault()
const logingdata ={
email : this .Email,
password: this .Password
}

axios
.post('/api/UserLogin', logingdata)
.then(response => {
console.log(response); //to print response in console in developper tool

localStorage.setItem('login', response.data.token);
console.log(this.Email);{
const loginmail=logingdata.email
console.log(loginmail);
}

})
.catch(error => {
console.log(error => console.log(error.response.data))
})
}

render() {
return (
<div className="outer">
<div className="inner"> 
<form onSubmit={ this.submitHandler}>
<h3>Log in</h3>

//Login form comes here.
<button type="submit" className="btn btn-dark btn-lg btn-block" >Sign in</button>

<p className="forgot-password text-right">
Forgot <Link to= "/Forgotpassword" >password?</Link>
</p>
</form>
</div>
</div>
);
}
}

我搞不清楚问题出在哪里。有人能帮我吗?

您所呈现的代码将令牌保存在localStorage中,当您在存储中有这些信息时,可能其他组件正在处理重定向。您需要在localStorage.setItem('login', response.data.token);之后重定向到特定的URL(可能是主页(,仅此而已

您正在设置后api响应后记录的用户数据。但react看不到本地存储的更改。

您需要使组件对本地存储更改做出反应。

使用类似react的东西使用本地存储

然后,您可以查看用户数据是否发生了更改,并呈现记录的组件,或者将用户发送到新的路由。

最新更新