gpt4 book ai didi

javascript - 在处理更改时通过状态 react 传递值

转载 作者:行者123 更新时间:2023-11-29 17:44:43 25 4
gpt4 key购买 nike

我正在尝试对登录页面使用两种方法,handleChange 和 handleSubmit。我试图在状态中为用户名和密码设置两个值,每当修改表单的输入时更新状态中的值,然后使用存储在状态中的值提交。但是,当打印到控制台时,我的值返回未定义。 (附注:我知道我仍然需要为所有安全专家加密密码)。

我是新手,所以我的逻辑可能有问题:

登录.js

export default class Login extends React.Component {

constructor(props) {
super(props);
this.state = {uname: '', password: ''};

this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}

handleChange(event) {
this.setState({uname: event.target.uname, password: event.target.password});
}

handleSubmit(event) {
alert('A username and password was submitted: ' + this.state.uname + this.state.password);
event.preventDefault();

fetch('https://localhost:8080/login', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
uname: this.state.uname,
password: this.state.password,
})
});
}

render() {

return (
<div>
<Header titleName={"Login"}>
<div className="container">
<div className="card"/>
<div className="card">
<h1 className="title">Login</h1>
<form onSubmit={this.handleSubmit}>
<div className="input-container">
<input name="uname" type="text" value={this.state.uname} id="#uname" required="required"
onChange={this.handleChange}/>
<label form="#unamelabel">Username</label>
<div className="bar"/>
</div>
<div className="input-container">
<input name="password" type="password" value={this.state.password} id="#pass" required="required"
onChange={this.handleChange}/>
<label form="#passlabel">Password</label>
<div className="bar"/>
</div>
<div className="button-container">
<button type="submit" value="Submit"><span>Go</span></button>
</div>
<div className="footer"><a href="#">Forgot your password?</a></div>
</form>
</div>
</div>
</Header>
<Footer/>
</div>
);
}
}

最佳答案

用这个替换 handle change

handleInputChange(event) {
const target = event.target;
const value = target.value;
const name = target.name;

this.setState({
[name]: value
});
}

您需要将输入的值设置为状态,而不是输入的名称

关于javascript - 在处理更改时通过状态 react 传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50630846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com