【发布时间】:2020-06-14 06:22:08
【问题描述】:
我对反应有点陌生,并且在创建身份验证应用程序时遇到了麻烦。
每当我点击登录时,我都需要点击登录链接两次才能登录。每当我按两次登录登录后,我都会被定向到我的主组件,但是,我会收到一条警告消息:
无法对未安装的组件执行 React 状态更新。
这是一个空操作,但它表明您的应用程序中存在内存泄漏。 要修复,取消所有订阅和异步任务 componentWillUnmount 方法。
我想知道我的代码哪里出错了。
这是我的 login.js 的一个片段。
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
class Login extends Component {
constructor(props){
super(props);
this.state = {
login: false,
}
}
checkUser(event){
event.preventDefault();
let data= {
email: this.refs.email.value,
password: this.refs.password.value,
}
var request = new Request('http://localhost:3001/api/login', {
method: 'POST',
headers: new Headers({ 'Content-Type' : 'application/json' }),
body: JSON.stringify(data)
});
fetch(request).then((response) => {
response.json().then((data) => {
//console.log(data.value);
this.setState({login: data.value});
})
}).catch(function(err){
console.log(err)
});
}
render (){
console.log(this.state.login);
const linkTo = this.state.login ? "/home" : "/login"
console.log(linkTo);
return (
<div>
<form>
<label>Email</label>
<input type="text" ref="email" placeholder="Email"></input>
<label>Password</label>
<input type="password" ref="password" placeholder="Password"></input>
<button onClick = {this.checkUser.bind(this)}>
<Link to={linkTo}>Login</Link>
</button>
</form>
<p>Dont have an account? <Link to="/register">Register</Link></p>
</div>
)
}
}
当我正确登录但我的页面没有呈现时,控制台显示/home,所以我需要再次按下按钮。
任何帮助将不胜感激。
【问题讨论】:
标签: javascript reactjs